Technicalarticles
英文 | https://medium.com/better-programming/a-list-of-interesting-operators-in-javascript-22fdacfbbce9
翻译 | web前端开发(ID:web_qdkf)
在JavaScript中,有许多好用且有趣的运算符。一些运算符会使你的代码看起来更简单。
有一些逻辑运算符可用于更方便地检查某些值。其中,感叹号for Logical Not非常有用。它将真实或虚假的值转换为布尔值,但是此运算符切换该值的评估布尔值。
如果该值为true或true,则!value为false或false,反之亦然。
!1 // false!-1 // false!0 // true!function() {} // false!{} // false!'' // true!NaN // true!null // true!undefined // true
这将显式强制将一个值转换为相应的布尔值。这与在已转换为布尔值的!value上加上一个感叹号(!)相同。
!!true // true!!{} // true!!(new Boolean(false)) // true!!false // false!!'' // false!!Boolean(false) // false
2 ** 3 === Math.pow(2, 3) // 8-(2 ** 2) === -Math.pow(2, 2) // -410 ** -1 === Math.pow(10, -1) // 0.1
9 (base 10) = 00000000000000000000000000001001 (base 2) --------------------------------~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)
〜9 =>-((9 +1)=> -10〜-10 =>-(-10 +1)=> 9
~5.5 => -6~-6 => 5~~5.5 === Math.floor(5.5) // true~~-5.5 === Math.trunc(-5.5) // true
5..toString(2)//'101'Number(5).toString(2)=== 5..toString(2)// true
(function() { // do your work})();
const msg = [];
+function(){
msg.push('Hello');
}()
-function() {
msg.push('World');
}()
~function(){
msg.push('!');
}()
~~function() {
msg.push('My name');
}()
!function() {
msg.push('is');
}()
!!function() {
msg.push('Moon');
}()
console.log(msg.join(' ')); // Hello World ! My name is Moon
DO U LIKE?