从下划线:
_.isElement = function(obj) {
return !!(obj && obj.nodeType === 1);
};
Run Code Online (Sandbox Code Playgroud)
是什么目的!!.它认为和陈述的结果总是真或假.
我已经看到这用作"强制转换"为布尔类型的方式.
但我不认为这里没有必要.
该!!技巧确保输出为真或假.
obj && ..当obj求值为false-y值(例如""或0)时,表达式将导致obj的值.
有时输入对象与结果无关,而这种"强制转换"(它根本不是强制转换,而是强制转换)可以清除API并避免泄漏细节 - 可以确保只返回true或false.
这是TTL a && b,注意结果不一定是真或假:
a b a && b
------- ------ ------
TRUTH-y ANY b
FALSE-Y ANY a
Run Code Online (Sandbox Code Playgroud)
这是TTL !e,结果总是真或假:
e !e !!e
------- ------ ------
TRUTH-y false true
FALSE-y true false
Run Code Online (Sandbox Code Playgroud)
表达原始表达式的另一种方法,我经常使用它:
return obj ? obj.nodeType === 1 : false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |