关于js默认值

类型转换

关于js默认值_第1张图片

|| 判断符:

var {a = 10, b = 5} = {a: 3};

变量可以先赋予默认值。当要提取的对象对应属性解析为 undefined,变量就被赋予默认值。

问题:但是当属性值为
false,null,NaN,0,空字符串的时候,将不会使用默认值

解决方法:使用“ || ”

c= a || b
  • 它不仅是逻辑操作符还是选择符
  • 当a的布尔值为false的时候c=b,
  • 即boole(a)=false,undefined, null,NaN,0,空字符串时

函数默认值

ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法。

function log(x, y) {
  y = y || 'World';
  console.log(x, y);
}
log('Hello', '') // Hello World

上面代码检查函数log()的参数y有没有赋值,如果没有,则指定默认值为World。这种写法的缺点在于,如果参数y赋值了,但是对应的布尔值为false,则该赋值不起作用。就像上面代码的最后一行,参数y等于空字符,结果被改为默认值
ES6 之后,函数默认参数允许在没有值或undefined被传入时使用默认形参。

function multiply(a, b = 1) {
  return a * b;
}

Null 判断运算符??

通过||运算符指定默认值,null或undefined,默认值就会生效,但是属性的值如果为空字符串或false或0,默认值也会生效。
,ES2020 引入了一个新的 Null 判断运算符??。它的行为类似||,但是只有运算符左侧的值为null或undefined时,才会返回右侧的值

总结

方法 默认值何时生效
|| boole值为false
解构赋值默认值 使用严格相等运算符(===),判断一个位置是否有值。所以,只有当一个数组成员严格等于undefined,默认值才会生效
函数默认值 typeof == undefined
?? null或undefined

参考链接:
https://es6.ruanyifeng.com/#docs/function
https://www.samanthaming.com/tidbits/52-3-ways-to-set-default-value/

你可能感兴趣的:(前后端,javascript)