目录
运算符
运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果。
算数运算符
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模运算(取余数) |
1、当对非Number类型的值进行运算时(除过字符串的加法运算),会将这些值转换为Number然后再运算。(任何值做- * / 运算时都会自动转换为Number,利用此特点做隐式的类型转换,通过为一个值- 0 *1 /1来将其转换为Number,实际上它也是调用Number()函数,但是更方便)
2、任何值和NaN运算都得NaN。
3、字符串相加为拼接操作。(可以利用此对长字符串换行输入)
4、任何值和字符串相加都会先转换成字符串,再进行拼接。
利用此将一个任意数据类型转换为String
为任意的数据类型 + 一个空串""即可进行转换
这是一种隐式的类型转换,由浏览器自动完成,实际上它也是调用String()函数
一元运算符
只需要一个操作数的运算符
+ | 正号 |
- | 负号 |
对非Number类型的值进行运算时,同样会将这些值转换为Number然后再运算。(任何值做运算时都会自动转换为Number,利用此特点,为一个值使用+,来将其转换Number)
自增和自减
自增++
- 通过自增可以使变量在自身的基础上增加1
- 一个变量自增以后,原变量的值会立即自增1
- 自增分为两种,后++(a++)和前++(++a)
a++的值等于原变量的值(先运算再+1)
++a的值等于自增后的值(先+1再运算)
自减--
- 通过自减可以使变量在自身的基础上减少1
- 一个变量自减以后,原变量的值会立即自减1
- 自减分为两种,后--(a--)和前--(--a)
a--的值等于原变量的值(先运算再-1)
--a的值等于自增后的值(先-1再运算)
逻辑运算符
对布尔值操作 | 对非布尔值操作 | |
---|---|---|
!取反 | true变false,false变true | 先将其转化为布尔值,再进行取反操作 |
&&与 | 遇到false即结束返回false,全为true才会返回true | 先将其转化为布尔值,再进行运算,并且返回原值,判断在哪结束返回哪个值的原值(结果false返回第一个false的原值,结果为true返回最后一个值的原值。) |
||或 | 遇到true就结束并返回true,全为false才会返回false | 先将其转化为布尔值,再进行运算,并且返回原值,判断在哪结束返回哪个值的原值。 |
对非Boolean类型的值进行!取反运算时,会将数据类型转换为Boolean然后再运算。利用此特性,两次取反,将任意数据类型转换为布尔值。原理同Boolean()函数一样。
代替if语句的用法
&&操作,第一个值为false,不会检查第二个值,为true时才会检查。
||操作,第一个值为true,不会检查第二个值,为false时才会检查。
对非布尔值进行&&或||运算,先转换为布尔值进行运算,结果返回原值。
赋值运算符
= | 符号右侧的值赋值给符合左侧的变量 |
+= | a = a + 5可以简写成 a += 5 |
-= | a = a - 5可以简写成 a -= 5 |
*= | a = a * 5可以简写成 a *= 5 |
/= | a = a / 5可以简写成 a /= 5 |
%= | a = a % 5可以简写成 a %= 5 |
关系运算符
> |
>= |
< |
<= |
- 通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true,反之返回false。
- Number与非Number之间的运算,对于非Number类型的数据,会先转换为Number再进行比较。
- NaN与任何值做任何比较,都会返回false。
- 如果符号两侧的值都是字符串,比较的是字符串的unicode编码,逐位进行比较。
利用此特性可以对英文进行排序,比较中文没有意义。
比较两个字符串型的数字时,一定要转型,否则比较的是Unicode编码。
相等运算符
== | 相等 | 相等运算符用来比较两个值是否相等,如果相等返回true,否则返回false。 如果值的类型不同,则会自动进行类型转换,将其转换为相同的类型(一般转Number),然后再比较。 undefined衍生自null,所以这两个值做相等判断时,会返回true。 NaN不和任何值相等,包括他本身。 |
!= | 不相等 | 不相等运算符用来比较两个值是否不相等,如果不相等返回true,否则返回false。 如果值的类型不同,则也会自动进行类型转换,将其转换为相同的类型,然后再比较。 |
=== | 全等 | 和相等类似,不同的是不会转换数据类型,类型不同直接返回false。 undefined和null相等但不全等。 |
!== | 不全等 | 和不等类似,不同的是不会转换数据类型,类型不同直接返回true。 |
补充: 判断一个值是否为NaN,调用isNaN()函数来判断。如果该值是NaN则返回true。
条件运算符
条件运算符也叫三元运算符
语法:条件表达式?语句1:语句2;
执行流程:
首先对条件表达式进行求值, 如果求知结果为非Boolean值,会先将其转换为Boolean值。
如果该值为true,则执行语句1,并返回执行结果。
如果该值为false,则执行语句2,并返回执行结果。
补充
运算符的优先级
,运算符
使用,可以分割多个语句,一般可以在声明多个变量时使用,
在js中有一个运算符优先级的表
在表中越靠上优先级越高,越优先计算,如果优先级一样,则从左往右计算。
可以使用()改变优先级。
Unicode编码
js中在字符串中使用转义字符输入Unicode编码
\u四位编码
例子:console.log("\u2620");
html网页中使用Unicode编码,需要的是十进制
&#编码;
例子: <h1>☠</h1>