JavaScript知识点回顾(六)——操作符(一)

289 阅读2分钟

这是我参与8月更文挑战的第六天,活动详情查看:8月更文挑战

操作符

操作符包括数学操作符(加减乘除)、位操作符、关系操作符等等。操作符可以用于各种数据类型,如字符串、数值、布尔值等,也可以用于对象。在给对象用操作符时,通常会调用之前提到过的valueOf()和/或toString()方法先取到可以计算的值。

一元操作符

只操作一个值的操作符叫做一元操作符。

递增/递减操作符

递增和递减操作符有两个版本,前缀版和后缀版。

  • 前缀版:变量的值会在语句被求值之前改变。
  • 后缀版:语句会在被求值后才发生。
    let a = 2;
    let b = 20;
    let result1 = a-- + b;    //22
    let result2 = --a + b;    //20    

一元加和减

需要注意的是如果把一元加或减操作符用到非数值时,会使用Number()转型函数一样的类型转换。

位操作符

  • 位操作符用于内存中表示数值的位来操作数值。

  • JavaScript 中所有的数值都以 64 位格式储存,但位操作符并不直接操作 64 位的值。而是现将 64 位的值转换成 32 位的整数,然后执行操作,最后将结果转回 64 位

  • 计算一个数的二进制补码的步骤:

    1. 求这个数值绝对值的二进制码
    2. 求二进制反码,0和1互换
    3. 得到的二进制反码加1

按位非

按位非用波浪符表示(~),按位非的最终效果是对数值取反并减1。

按位与

按位与用和号表示(&),操作两个数,将两个数的二进制每一位对齐然后比对,同时为1的位数才为1。

按位或

按位或用管道符表示(|),操作两个数,将两个数的二进制每一位对齐然后比对,只要有一个数为1就返回1。

按位异或

按位异或用脱字符表示(^),操作两个数,将两个数的二进制每一位对齐然后比对,两个的同一位不同时为1,相同时为0。

左移

左移操作符用两个小于号表示(<<),按照指定的位数将数值的所有位往左移动,用0填补空位,但不会影响符号位。

有符号右移

有符号右移用两个大于号表示(>>),将数值的32位都右移,保留符号,用0填补空位。

无符号右移

无符号右移用三个大于号表示(>>>),将数值的32位右移。不保留符号位。