前面带有波形符运算符的条件表达式
在 JavaScript 中,波形符 (~) 运算符可以位于表达式之前以执行按位求反。使用条件表达式时,此运算符可以有特定用途。
示例代码:
var attr = ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) ? 'value' : 'innerHTML'
说明:
如果未找到目标值,indexOf() 函数将返回 -1。通过使用 ~ 运算符求反该值,我们可以有效地将其转换为匹配的真值(任何非零值)和非匹配的假值 (-1)。
按位运算:
在 JavaScript 中,数字在内部表示为 32 位整数。 ~ 运算符翻转其操作数中的所有位,有效地反转它们。
例如,如果 'input,textarea'.indexOf( target.tagName.toLowerCase() ) 的值为 1(代表字符'i'),其二进制表示为:
0000 0000 0000 0000 0000 0000 0000 0001
应用 ~ 运算符翻转所有位,结果in:
1111 1111 1111 1111 1111 1111 1111 1110
在 2 的补码表示中,结果值为 -2。
条件结果:
在条件表达式中,值评估 ~'input,textarea'.indexOf( target.tagName.toLowerCase() ) 以确定是否将“value”或“innerHTML”分配给 attr 变量。如果找到目标,则表达式的计算结果将为真,从而将“值”分配给 attr。否则,如果未找到目标,则表达式将计算为假,导致“innerHTML”被分配给 attr。
以上是波形符运算符如何影响 JavaScript 中的条件表达式?的详细内容。更多信息请关注PHP中文网其他相关文章!