0622
1.数据类型转换
null的作用是清楚引用关系
转换为字符串:
目标.toString(); //可以转换为某进制字符串
String(目标); //强制转换
对象转换为字符串:[object Object] 第一个表示引用类型,第二个表示数据类型
.toFixed(); //保留小数点后几位
.toExponential(); //科学计数法,小数点后几位
.toPrecision(); //设置共几位,大于10使用科学计数法
.toLocaleString(); //根据本地时间把 Date 对象转换为字符串,并返回结果
转换为数值:
数值类型有两种:纯数值与非数值(NaN)
window.isNaN()与Number.isNaN()的区别:
window.isNaN()会先自动隐式转换为数值再进行判断,Number.isNaN()不会,若不是数值类型,直接返回false
字符串如果不全是数值,则转换为NaN
对于引用类型强转为数值,会先将引用类型转换为字符串,然后再转换为数值
转换为布尔值:
任何引用类型转换为布尔值都是true
0 “ ” undefined null 转换为布尔值,为false
2.算术运算符
所有数值算术运算时,都是数值运算
算术运算符: + - * / %
除了+,其他算数运算符在运算时会自动转换为数值,再进行运算
+运算时,若运算过程出现了字符类型,则转换为字符串并且首尾相连
数组类型在运算时,优先转换为字符串运算
3.赋值运算符和一元运算符
LHS与RHS
等号右侧运算完成后赋值给等号左侧
一元运算符: += -= *= /= %=
a++ 先执行再运算 ++a 先运算再执行
4.关系运算符
关系运算符是一个比较过程,返回一个布尔值
字符串进行关系比较时,会隐式转换为ASCHII值,然后进行比较
中文进行关系比较则转换为utf-8
=== 绝对等,值和类型完全相同 ==先隐式转换为相同类型然后再比较值
数组是引用类型,新的引用类型之间是不同的
NaN与NaN是不等的
5.逻辑运算符
&& || !
true && true true(返回第二个true)
false && false false(返回第一个false)
!取反,不管任何内容先强转为布尔值
6.进制
二进制、八进制、十进制、十六进制
7.位运算符
~ 位非 +1取反
& 位与 遇0为0
| 位或 遇1为1
^ 异或 相反为1,相同为0
<< 左移位 >> 右移位
8.条件运算符
三目运算符 > ? :