一:typeof运算符
用来检查一个变量的数据类型
用法:typeof 变量
会返回一个用于描述类型的字符串作为结果
二:算数运算符(+ - * / %)
除了加法以外,对非Number类型的值进行运算时,都会先转换为Number然后在做运算。
而做加法运算时,如果是两个字符串进行相加,则会做拼串操作,将两个字符连接为一个字符串。
任何值和字符串做加法,都会先转换为字符串,然后再拼串
三:一元运算符
(1)+号
就是正号,不会对值产生任何影响,但是可以将一个非数字转换为数字
(2)-号
-就是负号,可以对一个数字进行符号位取反
(3)自增(++)
++a 先加后用 a++先用后加
(4)自减(--)
--a 先减后用 a--先用后减
四:逻辑运算符
(1)!
对布尔值进行取反,true变false false边true
对非布尔值使用!时,会先将其转换为布尔值然后再取反
我们可以利用!来将其他的数据类型转换为布尔值
(2)&&
&&可以对符号两侧的值进行与运算
只有两端的值都为true时,才会返回true。只要有一个false就会返回false。
如果第一个值是false,则不再检查第二个值
对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
规则:
1.如果第一个值为false,则返回第一个值
2.如果第一个值为true,则返回第二个值
(3)||
||可以对符号两侧的值进行或运算
只有两端都是false时,才会返回false。只要有一个true,就会返回true。
如果第一个值是true,则不再检查第二个值
对于非布尔值,它会将其转换为布尔值然后做运算,并返回原值
规则:
1.如果第一个值为true,则返回第一个值
2.如果第一个值为false,则返回第二个值
五:赋值运算符
(1)+= -------a += 5 相当于 a = a+5
(2)-= -------a -= 5 相当于 a = a-5
(3)*= -------a *= 5 相当于 a = a*5
(4)/= -------a /= 5 相当于 a = a/5
(5)%= -------a %= 5 相当于 a = a%5
六:关系运算符(> >= < <=)
关系成立返回true 不成立返回false
如果比较的两个值是非数值,会将其转换为Number然后再比较
如果比较的两个值都是字符串,此时会比较字符串的Unicode编码,而不会转换为Number
七:相等运算符
(1)==相等
其会对两个值进行类型转换,如果对不同的类型进行比较,会将其转换为相同的类型然后再比较。相等返回true否则false
(2)!=不等
不等也会做自动的类型转换
(3)===全等
不会进行自动的类型转换,如果两个值的类型不同,则直接返回false
(4)!==不全等
会进行自动的类型转换,如果两个值的类型不同,它会直接返回true
特殊的值:
null和undefined
由于undefined衍生自null,所以null == undefined 会返回true。
但是 null === undefined 会返回false。
NaN
NaN不与任何值相等,包括它自身 NaN == NaN 会返回false
判断一个值是否是NaN
使用isNaN()函数
八:三元运算符(?:)
条件表达式?语句1:语句2;
先对条件表达式求值判断,
如果判断结果为true,则执行语句1,并返回执行结果
如果判断结果为false,则执行语句2,并返回执行结果
九:运算符优先级
可使用()来改变优先级