JavaScript:运算符

运算符

 

1.typeof:获取一个值的类型并以字符串的形式返回 result = typeof a;

 

2.加减乘除:

*当对非Number类型的值进行运算时,会自动转化为Number类型然后运算:true--1 false--0 null--0

*任何值和NaN运算都得NaN

2.1 加号:

特殊情况:字符串的相加为拼接,将两个字符串拼接

1.写一些比较长的字符串,可以用+拼串,避免显示不全

2.任何值和字符串做+运算都会先转换为字符串,然后和字符串拼接

3.可以利用2将任何数据类型转为String类型

2.2 减乘除:

任何非Number值做-*/类运算时都会自动转化为Number类型

可以通过为一个值减乘除将其转化为Number类型

 

一元运算符

需要一个操作数(typeof、+a、-a)

 

1.加号:正号不对数字产生任何影响 a = +a;

 

2.减号:负号对数字进行负号取反 a = -a;

可以用+-号对非Number类型的值转化为Number类型 a = 1 + +"2";

 

3.自增:a++;

对一个变量自增时,原变量的值立刻+1

后++(a++)前++(++a):

a++和++a都会使原变量值立即+1

a++输出为a自增前的值,++a输出为a自增后的值

 

4.自减:a--;

同上规则

 

逻辑运算符

!:非运算

对于布尔类型值,两次取反不会改变值

对非布尔值取反时,先转换为布尔类型再取反

可以利用该特点将非布尔类型值转为布尔类型值

可以对一个非布尔类型类型取两次反,将其转化为正确的布尔值

&&:与运算

JS中的与属于短路与:

如果第一个值为false,则不再继续检查第二个数,直接返回false

如果第一个值为true,才继续检查第二个数

||:或运算

JS中的或属于短路或:

如果第一个值为true,则不再继续检查第二个数,直接返回true

如果第一个值为false,才继续检查第二个数

 

对于非布尔值&&||运算情况:先转化为布尔值,再运算,然后返回原值

(如何转换:https://blog.csdn.net/Marshallren/article/details/104045456

&&:

如果两个值转化为布尔值后都为true,则返回第二个的原值

如果有一个值是false,则返回第一个值

||:

如果有一个值是true,则返回第一个值

如果第一个值为false,则直接返回第二个值

 

赋值运算符

=:将右侧值赋值给坐标

+=a +=5; 等价于a = a + 5;

+=是一个符号,中间不可以打空格

其他运算符依旧适用

 

关系运算符

比较两个值之间的大小关系

关系成立返回true,否则返回false

var result = 5 > 4;
//返回true
alert(result);    

 

Unicode编码

使用转义字符\输出Unicode编码 \u四位编码

*十进制与十六进制:

在JS中:\u四位编码(十六进制)

在Html中:&#四位编码(十进制)

 

相等/不等运算符

==:相等返回true,不等返回false

当使用==比较时,如果两个值的类型不同,会自动转化成相同类型转化然后比较

所以1=="1"true=="1"

undefined衍生自null,所以undefined == null

*NaN不和任何值相等,包括它本身

可以通过isNaN()函数判断一个值是否是NaN isNaN(a);

 

!=:不等返回true,相等返回false

当使用==比较时,如果两个值的类型不同,会自动转化成相同类型转化然后比较

 

===:判断两个值是否全等,不会自动做类型转化

!==:判断两个值是否不全等,不会自动做类型转化

 

三元运算符,也叫条件运算符

条件表达式?语句1:语句2;

-先对条件表达式求值,如果值为true,执行语句1,返回执行结果;如果为false,执行语句2,返回执行结果

var a = 10;
var b = 20;
var max = a > b ? a : b;
alert(max);

 

运算符的优先级

逗号","运算符可以分割多个语句,一般在声明多个变量时使用    

声明多个变量:var a, b, c;

声明多个变量并赋值:var a=1, b=2, c=3;

 

优先级

-优先级相同时,先左后右

-先乘除后加减

-&& > ||

-若遇到优先级不清楚的地方,可以使用()改变优先级

猜你喜欢

转载自blog.csdn.net/Marshallren/article/details/104711381
今日推荐