本文详细解析JavaScript中双波浪号(~~)与双感叹号(!!)的运算机制。双波浪号用于向零取整,正负数处理逻辑不同;双感叹号用于将值转换为布尔类型。通过代码示例对比两者在正负数及空值场景下的具体表现,帮助开发者准确使用。
双波浪号运算原理
双波浪号
var i = 5.1;
var j = 5.5;
console.log(~~i); // 5
console.log(~~j); // 5
其功能类似于Math.floor。
在处理正数时,两者的行为相似;但在处理负数时,结果存在差异:
~~-5.1 // 5
Math.floor(-5.1) // -6
~~-5.5 // 5
Math.floor(-5.5) // -6
注意:
Math.ceil(x)
Returns the smallest integer greater than or equal to a number.
Math.floor(x)
Returns the largest integer less than or equal to a number.
~~
是向0计算,取值向0靠拢
双感叹号类型转换
双感叹号
var a = 1;
var b = null;
var c = '';
var d = 'code';
console.log(!!a); // true
console.log(!!b); // false
console.log(!!c); // false
console.log(!!d); // true
其作用类似于Boolean,用于将任意值转换为布尔类型。
总结
以上就是本文的全部内容,希望这些关于双符号运算的解析能对您的学习或工作有所帮助。如有任何疑问,欢迎留言交流,感谢对本站的支持。