欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-21 23:34:05
1. javascript的短路机制1.1 且运算符(&&)往往用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值为true,则返回第二个运算子的值(注意是值,不是布尔值);如果第一个运算子的布尔值为false,则直接返回第一个运算子的值,且不再对第二个运算子求值if (i) { doSomething();}// 等价于i && doSomething();1.2 或运算符(||)也用于多个表达式的求值。它的运算规则是:如果第一个运算子的布尔值...

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