帮助中心 广告联系

潜江资讯网 - 潜江在线,潜江教育、信息、新闻、租房、人才、二手房、咨询网

热门关键词:

js中的?是什么写法?起什么作用?

来源:原创/投稿/转载 发布时间:2024-01-03

  也就是说,当你要访问某个对象的属性或者调用某个对象上的方法时,如果这个对象的值为 undefined 或者 null,那么语句执行就会报错,举例如下:

  以往我们的解决方案是加一层判断,确保访问的对象不为 undefined 或者 null,我们才做后续操作,具体代码如下:

  上面的代码虽然解决了问题,但是写起来太繁琐,不够优雅,所以新版 JS 增加了可选链操作符来简化这一过程。上面的代码用可选链操作符简化如下

  所以 ?. 可选链操作符的作用就是,如果 demo 对象的 nickName 属性值不为 null 或 undefined 则调用其 toString() 方法,如果不存在则不调用,实际效果与上面的 if 判断是等价的。

  ?? 只有当操作符左侧表达式的值为 undefined 或者 null 时,才会返回右侧的值。

  只要操作符左侧表达式的值为 false 时,那么就会返回右侧的值。左侧的表达式会自动做布尔运算,因为 0 和 空字符串 做布尔运算,其值为 false,所以 o 和 p 的值等于 100。

  通过上面的比较可以发现,?? 操作符的出现,是为了更准确的做空值判断,只有 null 和 undefined 才会被判定为空值, 0 和 不会被判定为空值。

  只有当 ??= 左侧的值为 null 或者 undefined 的时候,才会将右侧变量的值赋值给左侧变量,其他所有值都不会进行赋值,在某些场景下可以省略很多代码。

最火资讯

本网转载作品的目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如涉及作品内容、版权等问题,请联系我们进行修改或删除!