God*_*ers 2 javascript function
在下面的代码中如何传递bar为
function (n) { return n; }
Run Code Online (Sandbox Code Playgroud)
在if块中foo评估为true?
function foo(bar) {
if (bar) {
// true
} else {
// false
}
}
Run Code Online (Sandbox Code Playgroud)
这让我感到困惑,所以任何帮助都非常感激.
如果bar绑定到匿名函数,那么它就是一个对象.对象在JavaScript中是"真实的".
JavaScript中唯一的'falsy'值是:
falsenullundefined'' (空字符串)0 (零作为数字)NaN其他一切都是"真实的",包括功能对象.
如果您打算调用匿名函数,那么if (bar(5))您可以使用参数调用匿名函数5.然后你的匿名函数将返回n(5在这种情况下).由于5不是一个虚假的对象,这也将转移到true分支.做到了if (bar(0))会到else分支,因为0是假的.
凡是不null,0,false,空字符串或undefined将要评估,以true在if(something)声明中,这是弱类型在JavaScript中是如何工作的.
如果您想要更具体,您可能需要查看typeof运算符以检查您期望的类型,或者使用另一个更强的检查,如下所示:
if(bar === true) {
Run Code Online (Sandbox Code Playgroud)
使用===值和类型等价的检查.
| 归档时间: |
|
| 查看次数: |
2093 次 |
| 最近记录: |