English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Einleitung
Zunächst muss man wissen, dass in JavaScript6Werte, die false sind, sind: 0, '', null, undefined, NaN und false, andere (einschließlich {}, [], Infinity) sind true.
Man kann die Funktion Boolean() oder zwei Negationen verwenden, um den booleschen Wert eines Objekts zu erhalten, z.B. Boolean(undefined) und !!undefined ergeben ebenfalls den booleschen Wert false.
Für 0, '', null, undefined, NaN, {}, [], Infinity, die booleschen Werte sind分别为false false false false false true true true.
Daher wissen wir: Der boolese Wert eines Objekts ist true, selbst wenn es ein leeres Objekt {} ist.
bool-Wertkonvertierung
Datenart | bool-Wertkonvertierung |
---|---|
undefined | undefined wird in false umgewandelt |
Object | null wird in false umgewandelt, andere in true |
Boolean | false wird in false, true in true umgewandelt |
Number | 0, NaN wird in false umgewandelt, andere in true |
String | "" wird in false umgewandelt, andere in true |
"&&"
Die Algorithmusregeln für den &&-Operator in JavaScript sind wie folgt:
Wenn der Wert der linken Seite des &&-Operators wahr ist, wird der Wert des rechten Ausdrucks zurückgegeben; andernfalls wird der Wert der linken Seite zurückgegeben. Wenn mehrere &&-Ausdrücke gemeinsam berechnet werden, wird der Wert des ersten Ausdrucks zurückgegeben, der auf false ausgewertet wird, und wenn alle Ausdrücke wahr sind, wird der Wert des letzten Ausdrucks zurückgegeben.
const aa = {'name': 'xx'}; const bb = aa && aa.age; // bb Ausgabe ist undefined; let cc; const dd = cc && cc.name ? cc.name : undefined; // dd输出为undefined const dd = cc && cc.name; // dd输出为undefined;
上面两句代码的执行结果是一样的。之前写代码的时候一直用上面的方式,但是发现有些单测覆盖不到,导致单测分支覆盖率很低。换下面的方式就可以很好地解决这个问题,这两句的效果是一样的。
"||"
javascript中"||"运算符的运算法则如下:
如果"||"左侧表达式的值为真值,则返回左侧表达式的值;否则返回右侧表达式的值。多个"||"表达式一起运算时,返回第一个表达式运算结果为true的值,如果所有表达式运算结果都为false,否则返回最右侧的表达式的值。
const aa = false || 'xx'; // aa输出为'xx'
"!!"
"!!"将表达式强制转换为bool值的运算,运算结果为true或false。
const aa = 'xx'; const bb = !!aa; // bb输出为true const cc = !!(NaN || undefined || null || 0 || '' ); // cc为false;
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或工作具有一定的参考学习价值。如果有疑问,大家可以留言交流,谢谢大家对呐喊教程的支持。
声明:本文内容来源于网络,版权归原作者所有。内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发邮件时,请将#更换为@进行举报,并提供相关证据。一经查实,本站将立即删除涉嫌侵权内容。)