三、js双问号


1、js的双问号

在JavaScript中,双问号(??)表达式是一种非常有用的方法。它的作用是用来检测一个值是否为null或undefined。如果该值为null或undefined,那么双问号表达式会返回一个默认值。

其实,双问号表达式就是一个三目运算符的简化写法,如下所示:

const result = value !== undefined && value !== null ? value : defaultValue;

因此,双问号表达式的出现就解决了这个问题。双问号表达式的语法结构如下:

const result = value ?? defaultValue;

这行代码的意思是:如果value的值为null或undefined,那么返回defaultValue;否则返回value的值本身。使用双问号表达式,代码看起来就简洁明了。

其实,JavaScript中还有一种方法也能实现双问号表达式的效果——逻辑或操作符(||)。例如:

const result = value || defaultValue;

这段代码的含义和前面的代码是相同的。其中,||操作符的原理是:如果第一个操作数为真,则返回第一个操作数的值;否则返回第二个操作数的值。这里的真包括了所有不为null、undefined、false、0、空字符串的值。

那么二者之间有什么明显的区别呢?

双问号表达式和||操作符最重要的区别在于空字符串的处理方式。在使用||操作符时,如果value是空字符串(””),那么返回的值也是defaultValue。但是在使用双问号表达式时,如果value是空字符串,那么返回的就是空字符串本身。这种区别可能对于某些特定的应用场景非常重要,因此,我们需要根据实际情况选择不同的方法。


文章作者: 吴俊杰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 吴俊杰 !
 上一篇
四、offset、scroll、client三大家族 四、offset、scroll、client三大家族
我的天,这三个东西真的折磨人,一直拎不清,工作中遇到也得查资料,这次一把给到搞到位,不要再丢烂摊子了......
2024-12-04
下一篇 
二、浏览器的渲染原理 二、浏览器的渲染原理
曾经我不知道重绘和重排,只知道死记硬背,但是背了忘,忘了背,知道我开始去理解浏览器渲染过程,去了解它的每一步......
2024-12-04
  目录