We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
| (或)和 & (且)是用来进行布尔判断的。
a || b / a && b的值基本上不可能是true或者false,它们的值一般为falsy或者truthy
a || b / a && b
true
false
falsy
truthy
falsy值的个数是有限多个,分别为undefined、null、0、""、NAN,再加上false。
undefined
null
0
""
NAN
当进行 | (或)运算时,只要有一个值为真,那么整个结果为真,其他情况为假。
a || b || c...
例: 0 || undefined || null || console.log('true')
0 || undefined || null || console.log('true')
它的结果为false,所以它的值为console.log('true')的falsy值,虽然它是一句执行语句,但是它的值仍然为undefined
console.log('true')
例: 0 || undefined || 1 || 2 || console.log('true')
0 || undefined || 1 || 2 || console.log('true')
当它执行到1时,计算的结果为true,所以后面的代码不会执行,整个式子的值为1
1
当进行 & (且)运算时,只有全部值为真,那么整个结果才为真,其余为假。
a && b && c...
例: null && console.log('false') && 8 && 1
null && console.log('false') && 8 && 1
它的结果为false,当它执行到0时,得到了false,后续代码就不会执行了
例: 1 && 'a' && {} && []
1 && 'a' && {} && []
它为true,所以它的值为最后一个truthy值
比如var a = {},乍一看,这定义个变量好像没什么问题,但是其中包含了一个陷阱。那就是你不知道这个a变量是不是已经定义了,如果a变量在之前就已经定义使用了,那么这句代码就会重新定义a变量,极其容易产生错误。
var a = {}
a
那么在和他人合作完成代码,不清楚某个变量的是否被定义时,应该加一个判断:
if(a){ a = a; }else{ var a = {}; } //可以优化成 var a = a || {}
The text was updated successfully, but these errors were encountered:
No branches or pull requests
| 和 &
| (或)和 & (且)是用来进行布尔判断的。
a || b / a && b
的值基本上不可能是true
或者false
,它们的值一般为falsy
或者truthy
falsy
值的个数是有限多个,分别为undefined
、null
、0
、""
、NAN
,再加上false
。| 符号
当进行 | (或)运算时,只要有一个值为真,那么整个结果为真,其他情况为假。
a || b || c...
false
,那么它的值为最后一个falsy
值例:
0 || undefined || null || console.log('true')
它的结果为
false
,所以它的值为console.log('true')
的falsy
值,虽然它是一句执行语句,但是它的值仍然为undefined
true
,那么它的值为第一个truthy
值,后面的代码不会执行例:
0 || undefined || 1 || 2 || console.log('true')
当它执行到
1
时,计算的结果为true
,所以后面的代码不会执行,整个式子的值为1
& 符号
当进行 & (且)运算时,只有全部值为真,那么整个结果才为真,其余为假。
a && b && c...
false
,那么它的值为第一个falsy
值,后面的代码不会执行例:
null && console.log('false') && 8 && 1
它的结果为
false
,当它执行到0
时,得到了false
,后续代码就不会执行了true
,那么它的值为最后一个truthy
值例:
1 && 'a' && {} && []
它为
true
,所以它的值为最后一个truthy
值利用 | (或)避免危险代码
比如
var a = {}
,乍一看,这定义个变量好像没什么问题,但是其中包含了一个陷阱。那就是你不知道这个a
变量是不是已经定义了,如果a
变量在之前就已经定义使用了,那么这句代码就会重新定义a
变量,极其容易产生错误。那么在和他人合作完成代码,不清楚某个变量的是否被定义时,应该加一个判断:
The text was updated successfully, but these errors were encountered: