关于可选链和非空断言

68 阅读1分钟

可选链: ----> ?

如果访问对象属性的时候,前面是null 或者 undefine , 可选链运算符会返回undefined

相当于在前面先帮你做一次判断,如果存在该属性,那么继续执行,若非,则不探索后面的属性,一般返回undefine

相当于 : if(li.dog){li.dog.bark()} === li.dog?.bark()

非空断言: ----> !

后缀运算符 ,告诉编辑器,前面的这个属性是不是null

  注意点: 只是单方面告诉,具体是不是,还得看实际情况