十四、三目运算符、对象克隆、浅拷贝、深拷贝、模块化复习

本文复习了JavaScript中的三目运算符,详细讲解了其特点和使用场景。接着深入探讨了对象克隆,包括浅拷贝的实现与不足,以及如何实现深拷贝以避免影响源对象。最后,回顾了模块化的概念,包括协同作业的模式和插件的执行方式,强调了模块化的核心在于保存函数到全局以备后续执行。
摘要由CSDN通过智能技术生成

十四、三目运算符、对象克隆、浅拷贝、深拷贝、模块化复习

一、三目运算符

又叫三元运算符,相当于if的三段式:

var a = 5;
if(a > 0){
   
    console.log('大于0');
}else{
   
    console.log('小于等于0');
}

a > 0 ? console.log('大于0') //相当于三段式if
      :console.log('小于等于0');

1.1 三目运算符的特点

可以用一个变量去接收三目运算的结果,即三目运算会默认return结果。

var a = 5;
var str = a > 0 ? '大于0' //相当于这里有return
				: '小于等于0';

console.log(str); // '大于0'

if判断里可以嵌套if,当然三目运算中也可以嵌套三目运算:

var a = 3,
    str = '';
if(a > 0){
   
    if(a > 3){
   
        str = '大于3';
    }else{
   
        str = '大于0小于等于3';
    }
}else{
   
    str = '小于等于0';
}
console.log(str); //'大于0小于等于3'

用三目运算符来判断:

str = a > 0 ? (
    			a > 3 ? '大于3' 
                      : '大于0小于等于3'
			  )
            : '小于等于0';
console.log(str); //'大于0小于等于3'

一个关于三目的面试题:

var str = 89 > 9 ?(
                    '89' > '9' ? '通过了'
                               : '没通过'
                  )
                 : '外层通过了';
console.log(str);

控制台输出'没通过'

89>9结果为ture,进入冒号前的三目运算嵌套;比较运算符两侧都为字符串时,从第一个字符开始一 一 比较字符编码ASCII码值;字符8的ASCII码值小于字符9的ASCII码值,比较结束,判断为false,返回冒号后面的结果,即'没通过'

二、对象克隆

前导知识:

​ 字面量形式创建的对象实际上是由new Object()创建的

——>所以字面量对象的__proto__指向了0bject.prototype

——>0bject.prototype是所有对象(非自定义原型)的原型对象

——> 所有对象都继承0bject.prototype上的属性

2.1 浅拷贝

使用for in 遍历对象,把一个对象中的所有属性复制到另一个新对象中。

但是for in 遍历对象时,会把对象的原型链上的自定义属性也复制到新对象中,怎么办呢?

使用hasOwnProperty<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值