84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我知道这个问题的答案是它在规范中,但其背后的逻辑(如果有的话)是什么?
Welcome to Node.js v19.0.0. Type ".help" for more information. > !!'' false > !![] true
String,据我了解,实际上是一个数组,添加了一些额外的功能,以使文本更易于使用,但它仍然可以执行所有类似数组的操作,所以为什么是一个空字符串falsey 但空数组是truthy?
String
falsey
truthy
让我们简单一点:
!!''
JavaScript 中的空字符串被视为“假”值。在布尔上下文中求值时,它被视为布尔 false。
!![]
数组,无论是否包含项目,在 Javascript 中都被视为“真实”值。在布尔上下文中求值时,它们被视为布尔 true。
让我们简单一点:
JavaScript 中的空字符串被视为“假”值。在布尔上下文中求值时,它被视为布尔 false。
数组,无论是否包含项目,在 Javascript 中都被视为“真实”值。在布尔上下文中求值时,它们被视为布尔 true。