天天看点

JavaScript笔记:运算符运算符:等同于数学中的运算一样处理

运算符:等同于数学中的运算一样处理

表达式:一定都会有值

//赋值表达式
var a = 10;
//算术表达式
a + 10;
console.log(a);
           

1、算术运算符:+ - * / % ++ –

(1)i++与++i的区别:

i++

先用再加

++i

先加再用

(2)优先级问题:

先算

*

/

%

,再算

+

-

可以使用括号

()

改变运算顺序

(3)解决误差

使用函数

toFixed(n)

其中n表示保留的小数位数

var a = 2 - 1.6;
console.log(a);//结果为:0.399999999999999
a = a.toFixed(2);
console.log(a);//结果为:0.40
           

(4)键盘输入值

基本语法:

prompt("提示","默认值(可省略)");

var a = prompt("请输入:"); //假设输入2
console.log(a);//结果为2
           

2、关系运算符:> < >= <= != === !==

最终的结果为boolean类型的值

==

/

!=

仅判断数据值

===

/

!==

判断数据的值和数据的类型

(1)string与number比较时

string会先转换为number,使用了

Number()

函数

任何数据与

NaN

比较,结果都会是

false

(2)string与string比较时

二者使用Unicode码进行比较

查看unicode码方法:

'a'.charCodeAt()

空字符可以当做

false

使用,如

""

0.0

undefined

3、逻辑运算符:多个条件之间的判断关系

(1)与:&&

两个条件都为

true

,则结果为

true

短路逻辑:只要第一个条件为

false

,结果就会为

false

,后面的语句不进行操作。即“见0则0”

(2)或:||

两个条件有一个条件为

true

,则结果为

true

短路逻辑:只要第一个条件为

true

,结果就会为

true

,后面的语句不进行操作。即“见1则1”

(3)非:!

取反

4、位运算符

只能做数字的运算,而且要将数字转为二进制

(1)&:按位 与

对应某一位上的操作数都是1时,该为结果为1,否则为0

应用场景:判断奇偶性(比取余效率高)

//和1做按位与运算,最后一位为1,则是奇数,否则为偶数
console.log((10 & 1 !== 0));//结果为false
           

(2)|:按位 或

对应某一位上的操作数有一个是1时,该为结果为1,否则为0

应用场景:向下取整

var a = 48.89;
console.log(a | 0); //结果为:48
           

(3)<<:按位左移

将二进制数,向左移动几位,右边补0

//将1的二进制数左移2位
console.log(1 << 2);
//左移前:0000 0001
//左移后:0000 0100
// 结果为:4
           

(4)>>:按位右移

将二进制数,向右移动几位,左边补0

//将8的二进制数右移2位
console.log(8 >> 2);
//左移前:0000 1000
//左移后:0000 0010
// 结果为:2
           

(5)^:异或

对应某一位上的操作数只一个是1时,该为结果为1,否则为0

应用场景:交换两个变量的值

var a = 5,
    b = 3;
a = a ^ b;//a = 6
b = b ^ a;//b = 5
a = a ^ b;//a = 3
           

5、赋值运算符:= += -= *= /= %= &= |= ^=

+=:

a += b;

===>

a = a + b;

-=:

a -= b;

===>

a = a - b;

……

6、三目运算符:

基本语法:

表达式1 ? 表达式2 : 表达式3

其中表达式1的结果为

boolean

类型,如果表达式1结果为true,则执行表达式2

如果表达式1结果为false,则执行表达式3

var score = 78;
var result = score >= 60 ? "及格" : "不及格";
console.log(result); //结果为:及格