基本运算符总结

&

按位与运算符,对两个数字转化为32位表达式,按位做与运算。

// 9 is 00000000000000000000000000001001
var expr1 = 9;

// 5 is 00000000000000000000000000000101
var expr2 = 5;

// 1 is 00000000000000000000000000000001
var result = expr1 & expr2;

document.write(result);
// Output: 1

<<

左移运算符,对一个数字转化为二进制整体向左移,每移动一位相当于整体乘二。

var temp = 14 << 2; //56
//相当于14*2^2

var temp1 = 14;
temp1 <<= 2;
//相当于
var temp1 = 14<<2;

>>

右移运算符,对一个数字转化为二进制整体向右移,每移动一位相当于整体除二。

var temp = 100 >> 2; //25
//相当于100/2^2

~

按位取反运算符,首先将取反对象转化为数字,当无法转化报错;将数字转化为二进制,执行位非运算。

计算的结果为原先数值加一再取反。(~5===-6)

|

或运算符,var a=b|c;,当第一个参数不为false(0、undefined、”、“”),等于第一个参数;否则以同样的方法去验证第二个参数,验证成功则等于第二个参数,否则等于false。

当判断二进制数,进行按位比较,全为0得0,否则取1。

^

亦或运算符,相同为0不同为1。

逗号运算符,以基本的for循环为例for (i = 0; i < 10; i++, j++),会以从左到右的顺序执行表达式。

test ? expression1 : expression2

三元(三目)运算符。
- 如果 test 为 true,则返回表达式expression1。
- 如果 test 为 false,则返回表达式expression2。

in

in运算符,判断一个对象中是否含有某属性。

var object={name:"tete"};
result = name in object;

若存在返回true,否则返回false。

instanceof

判断一个对象是否属于另一个对象的实例

var a=function () {
    console.log(this);  //window object
}

a();
console.log(a instanceof Function); //true

var m=new Number(5);    
console.log(m);     //typeof Number;PrimitiveValue:5

console.log(m instanceof Number);   //true

var arr= [10,12];
console.log(arr instanceof Array);      //true

&&

逻辑与运算

当expression1不为false(null,0),会执行expression2,否则将expression1的值赋给result,当expression1和expression2的值都为假result值为假。

var result= expression1 && expression2; 

懒加载:…

  • 传递多个参数
te(6,5,67,1,323,15,48,8);
function te(...ms){
    console.log(ms);
}
  • 连接数组
var a, b, c, d, e;
    a = [1, 2, 3];
    b = "dog";
    c = [42, "cat"];
    // Using the concat method.  
    d = a.concat(b, c);
    // Using the spread operator.  
    e = [...a, b, ...c];
    console.log(d); // 1, 2, 3, "dog", 42, "cat"  
    console.log(e); // 1, 2, 3, "dog", 42, "cat"  

>>>

无符号右移运算

  • 转换为32位(单精度浮点数)
  • 整体向右移动两位
var temp
//-14二进制补码为 11111111 11111111 11111111 11110010
temp = -14
temp >>>= 2
console.log(temp)   //1073741820

void

计算其表达式,并返回undefined,如:

href="javascript:void(0)"

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值