当前位置: 移动技术网 > IT编程>开发语言>JavaScript > javascript的短路机制和几种数值取整的方法

javascript的短路机制和几种数值取整的方法

2020年07月26日  | 移动技术网IT编程  | 我要评论

1. javascript的短路机制

1.1 且运算符(&&)往往用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值

if (i) {
  doSomething();
}
// 等价于
i && doSomething();

1.2 或运算符(||)也用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true,则返回第一个运算子的值,且不再对第二个运算子求值;如果第一个运算子的布尔值为false,则返回第二个运算子的值。

function saveText(text) {
  console.log(text);
  // ...
}
// 或者写成
saveText(this.text || '', a|| "",b || '')//这里的参数可以写多个

数值的取整(JavaScript的二进制底层方法)

2.1 二进制或运算符(|)逐位比较两个运算子,两个二进制位之中只要有一个为1,就返回1,否则返回,位运算只对整数有效,遇到小数时,会将小数部分舍去,只保留整数部分。所以,将一个小数与0进行二进制或运算,等同于对该数去除小数部分,即取整数位。 用二进制否运算取整,是所有取整方法中最快的一种

//对一个小数连续进行两次二进制否运算,能达到取整效果。
~~2.9 // 2
~~47.11 // 47
~~1.9999 // 1
~~3 // 3

2.2 异或运算(^),异或运算也可以用来取整。

12.9 ^ 0 // 12

“异或运算”有一个特殊运用,连续对两个数a和b进行三次异或运算,a^=b; b^=a; a^=b;,可以互换它们的值。这意味着,使用“异或运算”可以在不引入临时变量的前提下,互换两个变量的值。

var a = 10;
var b = 99;
a ^= b, b ^= a, a ^= b;
a // 99
b // 10

2.3 左移运算符(<<)表示将一个数的二进制值向左移动指定的位数,尾部补0,即乘以2的指定次方(最高位即符号位不参与移动)

//如果左移0位,就相当于将该数值转为32位整数,等同于取整,对于正数和负数都有效。
13.5 << 0
// 13
-13.5 << 0
// -13

本文地址:https://blog.csdn.net/weixin_45356397/article/details/107564853

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网