重温js——位运算

JavaScript08

重温js——位运算,第1张

位运算是在数字底层(即表示数字的 32 个数位)进行运算的。由于位运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并且借助位运算有时我们还能实现更简单的程序逻辑,缺点是很不直观,许多场合不能够使用。

计算的过程如下:首先会把a 和 b 的值都转成二进制的数据(这里转换的数据是 32 的二进制哦),然后进行运算

计算过程如下:

运算过程如下:

我们知道,js中的数字默认是有符号的。有符号的32位二进制的最高位也就是第一位数字代表着正负,1代表负数,0代表整数。那到底11111111111111111111111111111110等于多少呢?最高位为1代表负数,负数的二进制转化为十进制:符号位不变,其他位取反加1。取反之后为10000000000000000000000000000001,加1之后为10000000000000000000000000000010,十进制为-2。

这里还有一个计算非运算的技巧:

取非运算的时候,先把数据前面加一个 负号 , 然后在 减1

公式:

数字1 2 ^ 数字2

公式:

取整(数字1 / 2 ^ 数字2)

// 运用场景,想要实现一个权限控制

数字因为js只有number这一种类型,包含整数和浮点数。

运算符有算术运算符、操作运算符、比较运算符、和逻辑运算符。

我最近再用的一个很好用的application, 叫实验楼,里面做了很详细明了的归类,故搬运过来。

①算数运算符

②操作运算符

③比较运算符

④逻辑运算符

⑤运算符的优先级

不是只有在console.log()里才成立,console.log只是更方便你写例子看结果。原理跟JS一样。

两个变量相加 ,一般只要一个变量为字符串,则按照字符串的方式进行相加得到结果。

两个变量相减,一般会默认将变量转换成number类型再运算。

字符表示符号 比如“,” 字符串表示你的中英文名字比如 “redjoy”, 数字则是年龄 “18”

不造说的清不清楚,先看看JS的基础课程。