javascript中的运算符

 

重点看带星号的

1、===严格相等运算符,用作逻辑判断,为什么不用==呢?

 

第二条1=='1',解释器会将'1'转化称数字1然后再比较,结果就是true

而第三条就是从类型和数值上比较,类型不同返回false

顺便说一个关键字,typeof查看某个值的类型,typeof 1 ; 返回:'number'

 2、|| 逻辑或运算符

 

 

 

 

 那么什么是Falsy呢?Falsy就是所有参与逻辑运算的类型最终值等于false的类型的统称,因为javascript中不是只有bool类型才能参与逻辑运算的

 

 除了以上的Falsy情况,就都是 Truthy的情况了。

最后这种||的写法有一个好处,就是不仅仅是undefine的情况下会返回默认值,只要是Falsy的情况都会返回,这样提高了代码容错度。但是不推荐这种写法毕竟过时了,推荐第一种

 3、?? 

 4、?.(注意后面有一个".")

 

  如何解决上面的问题呢?调用属性的时候使用“?.”,如果address是undefined或者null的时候就不会再继续执行了,所以不会报错,只会打印undefined而已。

传统的方法是这样的,这样写就比较繁琐:

 

 5、展开运算符:...(注意,使用展开运算符复制对象和数组只是浅拷贝,如果对象中还有对象那么只会引用)

 使用场景1:打散数组,传递给函数多个参数

 

 使用场景2:复制数组或者对象

如何复制一个数组?有很多方法,可以用for,或者Array中的api方法,还可以用展开运算符,如下:

如何复制一个对象?跟复制数组差不多,如下:

 

 使用场景3:合并数组,合并对象

 

 6、解构符[ ]

 

 

 与...展开运算符的区别是,...是在赋值的时候用,而[]在声明的时候用,下面就是传参的时候用...的情况,...只能用在传参的时候,不能用在声明赋值,比如:let a,b,c = [...array],这样就无法赋值了

 

  6、解构符 { }:

 

 

posted @ 2022-09-20 09:53  卡吧不死机  阅读(71)  评论(0编辑  收藏  举报