我偶然发现了一些代码,我希望有人可以向我解释。
这在 jqGrid 上下文中使用。
onSelectRow: function(id){
if(id && id!==lastsel){
jQuery('#rowed3').jqGrid('restoreRow',lastsel);
jQuery('#rowed3').jqGrid('editRow',id,true);
lastsel=id;
}
},
为什么在 JavaScript 中对字符串使用逻辑运算符,如上所示?这只是一个错误还是这里有一些我不理解的功能?
代码取自http://trirand.com/blog/jqgrid/rowedex3.html
完整示例 http://trirand.com/blog/jqgrid/jqgrid.html > 行编辑 > 使用事件
最佳答案
变量应该是数字,但是条件条件可以以任何方式工作。
if(id && id !== Lastsel)
<小时/>
第一个
id
表示它必须有一个值。该值也必须是真实的。如果值不是falsy
,则为truthy
,这意味着它不能是以下之一(借自11heavens.com):假
空
未定义
- 空字符串
''
- 数字
0
- 数字
NaN
(NaN
属于数字类型)
注意:您将在 JavaScript 中的其他地方看到与true
相同类型的比较,特别是 for/while 循环:/*1*/ while(id){...} // while id is true, do something /*2*/ for(;id;){...} // same thing, without the incrementation or variable definition
第二部分是说 id 不能等于lastsel,这是最后使用的 id。
!==
在 JavaScript 中很特殊,这意味着它必须比较值和类型,而!=
只是比较值:a == b
:a
的值等于b
的值a != b
:a
的值不等于b
的值a === b
:a
的值等于b
的值,且a
的类型等于 typeb
a !== b
:a
的值不等于b
的值和a
的类型不等于b
的类型
编辑
<小时/>此外,如果您看到括号中的表达式,可能会有助于思考该表达式:
if( (id) && (id !== Lastsel) )
关于javascript - Javascript 中字符串逻辑运算符的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4103917/