js有5种基本数据类型:Number String Boolean Null Undefinde
一种复杂数据类型 : Object
其他类型转Number类型:
['a']:NaN;
[12]:为数字且不能多余1个元素,则直接转number ;否则转为NaN;
null: 0
undefined:NaN;
object:NaN;
NaN:NaN;
''和' ':0;
'aa':NaN;
'12':12;
其他类型转String类型:
toString():注:null和undefined没有这个方法
布尔、字符串、数字直接转为string类型,
object转为 [object,Object ]
[12,null,undefined,aa] = 12,,,aa
String():
String(null)=null 、String(undefined)=undefined;
加减操作符:
会像number一样对数值进行转换,然后在操作
加性操作符:(加法、减法)
加法: 如果有一个是字符串,则把另一个转为字符串进行拼接;
如果遇到NaN,则返回NaN;
如果有一个是boolean,Undefined,null,则会调用Number()先转换为数值;
如果有一个是对象,则(有valueOf(),toString(),则调用)转为string,再进行 操作;
减法: 有一个为数字,则另一个也转为数字,
如果遇到NaN,则返回NaN;
如果有一个是字符串,布尔,Undefined,null,则会调用Number()先转换为数值;
关系操作符(比较运算符,返回boolean值)
a:如果2个数是数字则执行数值比较;
b:如果都是字符串则比较字符编码(是比较对应位置上的每个字符的编码);
c:如果一个是数字, 则把另一个转为数字,再进行比较 ;
d:如果是boolean ,则转为数字比较;
e:如果是对象,则调用对象的toString()得到值进行比较,若没有则调用valueOf()比较;
相等操作符(返回boolean值)
相等操作符
a:如果有一个数是number,则另一个转为number类型(包括字符串);
b:null和undefined值相等,且不能转换;
c:如果一个是NaN,返回false;
不等操作符
全等操作符(不涉及类型转换)