面试觉得自己实在太垃圾了,就来看看基础,做人还是要 多读书。
只能操作一个值的操作符叫做一元操作符。
1、递增、递减
前置操作符,先递增、递减,再计算。
var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2; // 先--再求和 21
var num4 = num1 + num2; // num1已经减过了 21
后置操作符,先计算,再递增、递减
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2; // 先求和 再-- 22
var num4 = num1 + num2; // num1已经减过了 21
2、一元操作符主要用于基本的算数运算,也可以用于转化数据类型。
32位二进制,第32位表示正负数,0为正,1为负。 求负数二进制:求绝对值,取反码,反码+1.
1、按位非(NOT)
用~表示,即取反码。
var num1 = 25; // 二进制 00000000000000000000000000011001
var num2 = ~num1; // 二进制 11111111111111111111111111100110
alert(num2); // -26
2、按位与(AND)
用&表示。
var result = 25 & 3;
alert(result); //1
计算时转化为二进制。对齐,与操作,只有最后一位相同,为1,所以结果为1.
3、按位或(OR)
用|表示。
var result = 25 | 3;
alert(result); //27
计算时转化为二进制。对齐,或操作。
2、按位异或(XOR)
用^表示。
var result = 25 ^ 3;
alert(result); //26
计算时转化为二进制。对齐,异或操作。(相同为0,不同为1)
1、逻辑非(!)
!!=Boolean();
2、逻辑与(&&)
可以应用于任何类型的操作数,不仅仅是布尔值。有以下规则:
var found = true;
var result = (found && someUndefinedVariable); // 这里会发生错误
alert(result); // 这一行不会执行
但如果将found值改为false,alert就会执行。因为不会对第二个操作数再进行求值了。
3、逻辑或(||)