typeof 也是一种运算符,返回值是字符串类型
算数运算符(+ - * /)
任何值和NaN运算都会返回 NaN
任何值和字符串相加都会变成字符串
除了加法其他运算都会将字符串(数字型的字符串)转成Namber进行运算
一元运算符 (+ 正号:正数 - 负号:负数)
加+:可以将变量转换为数字类型(隐性转换)
自增和自减
自增++(a++ ++a)
自减--(a-- --a)
- 运算符在前时 b = a++ b的值仍是a原来的值
- 运算符在后时 b = ++a b的值是a自增+1的值
- 自增或自减在一个界面出现几次就运算几次
逻辑运算符(!:非 , && :与 ,|| :或 )
!!可以将变量转换为布尔类型(隐性转换)
&& 运算逻辑:遇到 false 则 返回 flase,
没有 false 就返回 表达式最后的一个值,有值的false,会返回它的值
|| 运算逻辑:遇 true 则 返回 true,
没有true返回表达式最后的一个值,有值的true,会返回值
关系运算符(> >= :满足一个就是true <)
任何数和NaN比较都会返回False
非数字字符串相比较,比较的是字符的编码
是数字的字符串和数字比较会将字符串转成Namber
Unicode编码 \u:转义中文编码 例\u4F5e
控制台以十六进制解读 body里是十进制
相等运算符
== :相等 ===全等于 !=: 不等于 !==: 不全等于
NaN 和谁都不相等,包括它本身!
isNaN():判断一个变量是否是NaN
null 和 undefined 相等 但不全等
不同类型的相等或不等判断 会发生类型转换,全等和不全等不会发生!
三元运算符
条件表达式 ? 语句1 : 语句2;
true 成立 执行 语句1;false 不成立 执行 语句2;
可嵌套使用
a = 10 b = 20 c = 30
max = a > b ? (a > c ? a : c) : ( b>c ? b : c);
结果 max = 30
用{ }括起来的代码称为代码块 只是进行分组 并不影响变量的调用