js 运算符_JS 之运算符列表

4af07e00b1ec3ac312c1a30c6d6f4896.png

6c2e490afb2f408926e0aea80ecf1566.gif 阅读本文约需要6分钟

大家好,我是你们的导师,我每天都会在这里给大家分享一些干货内容(当然了,周末也要允许老师休息一下哈)。上次老师跟大家分享了CSS 之鼠标悬停时缩放图像的知识,今天跟大家分享下JS 之运算符列表的知识。

1 JS 之运算符列表 在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

有趣的是!! Boolean(false)和!!(new Boolean(false))给了我们一个不同的结果。如果不带new调用布尔构造函数,则它会返回一个布尔值。但是,如果使用new调用,它将返回Boolean的实例对象。所以!! Boolean(false)等于!! false,但是!!(new Boolean(false))等于!!(Boolean的实例),就像!! Object。 双星号(**)-求幂 这与Math.pow(x,y)完全相同,后者等于x ^ y。你们中的许多人可能仅在需要时才使用Math.pow。该运算符将使代码更漂亮! 9f8ed02408599c6ea0d4390883cfa8d6.png 要记住的一件事是IE不支持exponentiation(**)运算符。嘘...
2 ** 3 === Math.pow(2, 3) // 8-(2 ** 2) === -Math.pow(2, 2) // -410 ** -1 === Math.pow(10, -1) // 0.1

波浪号(〜)—按位非

代字号(〜)是电脑键盘上数字1旁边的花键,它是JavaScript中的运算符,用于处理位。JavaScript(以及其他编程语言)在处理数字时会使用位。如果你不知道两个的补数,请查看Wikipedia中的文章,以了解JavaScript如何对负数起作用。
9 (base 10) = 00000000000000000000000000001001 (base 2)               --------------------------------~9 (base 10) = 11111111111111111111111111110110 (base 2) = -10 (base 10)
该公式实际上非常简单。如果整数是K,则〜K变为-(K +1)。
〜9 =>-((9 +1)=> -10〜-10 =>-(-10 +1)=> 9

Double Tilde(~~)— Math.floor和Math.trunc

正如 !!从真假到真,从假真到假,双波浪号(~~)也将浮点数变成整数。单个波浪号(〜)对于数字不是按位的。最重要的一点是,从正变为负,或从负变为正。由于只有一个波浪号,所以我们只需增加一个波浪号即可将其恢复为原始符号号。但是,一旦将波浪号放在数字的开头,则小数点(。)右侧的浮点数将被忽略。
~5.5 => -6~-6 => 5~~5.5 === Math.floor(5.5) // true~~-5.5 === Math.trunc(-5.5) // true
而且根据stackoverflow,这比Math.floor。当数字为负数时,Math.trunc将是适合你的数字。

使用toString的双倍句号

你对将十进制数字转换为二进制数字有什么了解?toString是将十进制更改为二进制的典型方法。它的常见用法可能是Number.toString。但是,也可以如下所示。 4af07e00b1ec3ac312c1a30c6d6f4896.png
5..toString(2)//'101'Number(5).toString(2)=== 5..toString(2)// true

IIFE与运营商

你如何用JavaScript编写IIFE(立即调用函数表达式)?最常见的方式可能是这样。
(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
你注意到这是如何工作的吗?主键是在其右侧放置一个运行操作数的运算符。例如,!5返回false。为什么?因为!计算5并确定!5应该为true,因为它是真实性值。这样,任何运行和评估操作数的运算符都可以运行后面的函数,因为还必须为其运算符运行和评估函数,例如!!或〜。

结论

当然,并不是所有这些在现实中都被广泛使用。但是有时你可能需要它们。其中一些可确保更快的速度和更好的性能。那么,为什么不考虑有一天使用它们呢?
参考文献:https://medium.com/better-programming/a-list-of-interesting-operators-in-javascript-22fdacfbbce9
好了,今天技术部分就讲到这里。 还有一个重要的事,我们现在已开放对外招导师。工资还可以,大概15K-25K,点击下面【 链接 】有详细介绍!(注意!每期我们只招1个人!)

8daf31d302468650b4a2de2540f6548b.png

15K~25K招聘导师若干名

9eb85b6f4cf3d2d23ef2dc714eb1cbc2.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值