当前位置: 首页 > news >正文

合肥市做外贸网站的公司如何增加网站的外链

合肥市做外贸网站的公司,如何增加网站的外链,万网域名查询工具,亚洲风影视传媒有限公司辽宁文章目录 1. 拷贝1. 浅拷贝2. 深拷贝 2. 异常处理 1. 拷贝 这里指的拷贝是指拷贝引用类型的数据(对象) 1. 浅拷贝 拷贝对象:Object.assign() 或者 {…obj} 展开运算符 const obj {name:liuze,age:23 } const o {...obj}; o.age 22; console.log(o); console.…

文章目录

        • 1. 拷贝
          • 1. 浅拷贝
          • 2. 深拷贝
        • 2. 异常处理

1. 拷贝

这里指的拷贝是指拷贝引用类型的数据(对象)

1. 浅拷贝

拷贝对象:Object.assign() 或者 {…obj} 展开运算符

const obj = {name:'liuze',age:23
}
const o = {...obj};
o.age = 22;
console.log(o);
console.log(obj);
// {name: 'liuze', age: 22}
// {name: 'liuze', age: 23}

存在一个问题,如下:

const obj = {name:'liuze',age:23,obj2:{name:'hh'}
}
const o = {...obj};
o.obj2.name = 'liuze';
console.log(o);
console.log(obj);
// 都为
/*
{	age: 23name: "liuze"obj2: {name: 'liuze'}
}
*/

如果是简单数据类型拷贝值,引用数据类型拷贝的是地址(简单理解:如果是单层对象,没有问题,如果是多层就有问题)

直接赋值和浅拷贝的区别

  • 直接赋值的方法,只要是对象,都会相互影响,因为是直接拷贝对象栈里面的地址
  • 浅拷贝如果是一层对象,不相互影响,如果出现多层对象拷贝还会相互影响
2. 深拷贝

拷贝的是对象,不是地址

常见方法:

  1. 通过递归实现深拷贝

    const obj = {name:'liuze',age:23,obj2:{name:'hh'},hobby:['羽毛球',{'game':['王者','和平']}]
    }function deepCopy(obj){let ans = null;if(obj instanceof Array){ans = new Array();for(let index in obj){ans[index] = deepCopy(obj[index]);}// 数组,先写Array,再写Object}else if(obj instanceof Object){ans = new Object();for(let key in obj){ans[key] = deepCopy(obj[key]);}// 对象}else{ans = obj;}return ans;
    }const obj2 = deepCopy(obj);
    obj2.obj2.name = 'liuze';
    obj2.hobby[0] = '足球';
    obj2.hobby[1].game[0] = '王者荣耀';
    console.log(obj2);
    console.log(obj);
    

    请添加图片描述

    上述深拷贝代码有一定问题,只是拷贝数据没有问题,但是如果对象中有函数定义。。。,是有问题的

  2. lodash/cloneDeep

    lodash介绍文档在这:lodash,lodash.js下载链接为:lodash.js

    <!DOCTYPE html>
    <html>
    <head><title>javascript</title>
    </head>
    <body></body>
    <script type="text/javascript" src="lodash.js"></script>
    <script type="text/javascript">const obj = {name:'liuze',age:23,obj2:{name:'hh'},hobby:['羽毛球',{'game':['王者','和平']}]}const obj2 = _.cloneDeep(obj);obj2.hobby[0] = '足球';console.log(obj);console.log(obj2);</script>
    </script>
    </html>
    

    运行结果:
    在这里插入图片描述

  3. 通过JSON.stringify()实现

    const obj = {name:'liuze',age:23,obj2:{name:'hh'},hobby:['羽毛球',{'game':['王者','和平']}]
    }const obj2 = JSON.parse(JSON.stringify(obj));
    obj2.hobby[0] = '足球';
    console.log(obj);
    console.log(obj2);
    
2. 异常处理

异常处理是指预估代码执行过程中可能发生的错误,然后最大程度的避免错误的发生导致整个程序无法继续运行

  • throw抛异常

    1. throw抛出异常信息,程序也会终止执行
    2. throw后面跟的是错误提示信息
    3. Error对象配合throw使用,能够设置更详细的错误信息
    function sum(x,y){if(!x || !y){throw new Error('传入参数异常');}return x + y;
    }console.log(sum());
    

    在这里插入图片描述

  • try/catch/finally捕获异常

    <!DOCTYPE html>
    <html>
    <head><title>javascript</title>
    </head>
    <body><p>123</p>
    </body>
    <script type="text/javascript">function fn(){try{const p = document.querySelector('.p');p.style.color = 'red';}catch(err){console.log(err.message);return}finally{console.log('11');}}fn();
    </script>
    </script>
    </html>
    

    运行结果:
    在这里插入图片描述

    1. try。。。catch 用于捕获错误信息
    2. 将预估可能发生错误的代码卸载try代码段中
    3. 如果try代码段中出现错误后,会执行catch代码段,并截获错误信息
    4. finally不管是否有错误,都会执行
  • debugger

    用于调试的时候使用

    function fn(){debugger;console.log('哈哈');
    }fn();
    
http://www.shuangfujiaoyu.com/news/19716.html

相关文章:

  • 广安市建设局官方网站色盲色弱测试
  • 广州佛山网站建设地址百度推广技巧
  • 中国中小企业网站建设情况怎么制作个人网站
  • 注册过什么网站渠道推广策略
  • 怎么用jsp做网站竞价外包托管费用
  • 属于b2b的平台是武汉seo关键词排名优化
  • 建设银行安徽分行招聘网站北京网络排名优化
  • 网站建设文字资料yahoo搜索引擎入口
  • wordpress微信服务号关键词seo如何优化
  • wordpress 菜单url天津seo选天津旗舰科技a
  • 建设一个网站的步骤有哪些网络策划方案
  • 国内外网站开发的现状关键词检索
  • 台州市环保局网站开发区seo关键词优化推广
  • 公司以前做的免费网站太多 新网站搜索不到百度站长中心
  • vs做网站开发百度指数官网数据
  • 二手车东莞网站建设百度推广电话销售好做吗
  • 怎么做网站分析外贸订单一般在哪个平台接
  • 怎样制作小程序软件青岛网站建设方案优化
  • 网站建好用电脑做服务器成人大学报名官网入口
  • 外贸做企业什么网站建设seo是什么服
  • 如何查做的网站排名百度代运营公司
  • 做坑人网站二维码竞价托管公司联系方式
  • 网站建设中申请备案谷歌推广开户
  • 外贸网站建设广州好搜网
  • 国内做网站制作比较网络营销的四个策略
  • 网站规划与开发实训室建设网站快速排名优化
  • 动漫网站建设意义列举网络推广的方式
  • 上海网站建设哪家专业描述优化方法
  • 南宁怎么做网站百度产品推广
  • 微信网站建设价格惠州seo