js数据类型及操作符

1.任何类型的值转为boolean类型:
数据类型  转为true的值  转为false的值
string 任何非空字符串 空字符串
Number 任何非0数字值(包括无穷大) 0和NaN
Undefined 不适用 undefined
Object 任何对象 null
2.流控制语句对于传入的参数自动执行Boolean()函数
3.es会在整数超过21位时用e表示法显示,在浮点数小数点后带6个0以上时用e表示法表示
4.Infinity不是能够参与计算的数值 isFinite()可以判断一个数是不是无穷大/小
5.with(Number){
MIN_VALUE最小值
MAX_VALUE最大值
NEGATIVE_INFINITY负无穷
POSITIVE_INFINITY正无穷
}
6.NaN 不等于任何数,isNaN(),先尝试将参数转为数值,若不行则转为NaN返回true;
7.Number()传入:
数字,直接返回
boolean,true为1,false为0
null,0
undefined,NaN
字符串:
只包含数字,返回数字(忽略前导0)
只包含浮点数,返回浮点数
只包含16进制数,返回转为10进制的对应数值
空字符串,0
包含其他数字,NaN
对象,先调用valueOf()方法/若不行在调用toString方法,调用上述规则
  parseInt():
  只要第一个字符不是负号或数字字符,即返回NaN,忽略空格,忽略后续非数字字符的值
  传入的第二个参数可以指定,解析的字符串是多少位数字
  parseFloat
8.转为字符串:
  toString():
  不能用于null和undefined;
  String():适用于所有类型数值,对于有toString方法的调用之,否则直接返回其字面量的字符串
9.自增自减操作符用于不同类型时遵循的规则:
  先按照Number()的规则将不同类型值转为数字值(数字类型值不转换)或者NaN,再执行;
  一元加减操作符用于不同类型值:
  使用Number()的规则进行转换
  位运算符...:
  按照Number()的规则进行转换;
10.布尔操作符:
  逻辑非应用于其他类型数值时:
  先按照Boolean()方法的规则将其他类型值转为布尔类型,然后进行非操作
  同时使用两个!!相当于模拟Boolean()函数
  逻辑与用于其他类型数值时:
  若1数为false,返回false否则
  如果1数为对象,则返回2数
  如果1数true,2数为对象返回2数
  如果两数都是对象,返回2数
  只要有一数为null返回null;
  NaN     NaN;
  undefined undefined;
  还有,短路大法,你懂的;
  逻辑或用于其他类型数值时:
  如果1数为对象,则返回1数
  如果1数为false,返回2数
  如果两数都是null,返回null
  如果两数都是NaN,返回NaN
  如果两数都是undefined,返回undefined
  短路或
11.乘法操作符:
如果乘积超过了数值表示范围则返回Infinity或-Infinity
如果一个操作数是NaN,结果是NaN
Infinity与0乘,结果是NaN
Infinity与非0乘,结果是Infinity或-Infinity
Infinity与Infinity相乘结果是Infinity
如果有一个操作数不是数值类型,则调用Number()将其转为数值类型,再应用上述规则
  除法操作符:
  如果商超过了数值表示范围则返回Infinity或-Infinity
  如果一个操作数是NaN,结果是NaN
  Infinity被Infinity除结果是NaN
  0被0除结果是NaN非0有限数被0除,结果是Infinity
  Infinity被除了Infinity(以及-Infinity)的任何数除,结果为-或+Infinity
  如果有一个操作数不是数值类型,则调用Number()将其转为数值类型,再应用上述规则
  加法操作符:
  如果一个操作符是NaN,则结果是NaN;
  如果是两个Infinity则结果是Infinity
  如果是两个-...则结果是-.....
  如果是Infinity加-Infinity则结果是NaN
  +0加+0结果+0
  -..加-..结果-0
  -0加+0结果+0
  如果有一个是字符串则将另一个转为字符串将二者拼接
  如果两个都是字符串,则将二者拼接
  减法操作符:
  如果一个操作数是NaN结果是NaN
  如果是Infinity减Infinity结果是NaN
  如果是-Infinity减-Infinity结果是NaN
  如果是Infinity减-Infinity结果是Infinity
  如果是-Infinity减Infinity结果是-Infinity
  如果是+0减+0结果是+0
  如果是+0减-0结果是-0
  如果是-0减-0结果是+0
  如果是字符串,布尔值,null或undefined则调用Number()转为数值
  如果是对象则调用valueOf方法,toString方法
  关系操作符:
  两个数值,直接执行数值比较
  两个字符串,比较其字符编码值大小
  一个是数值,将另一个转为数值然后执行数值比较
  如果一个操作数是对象,调用其valueOf,若无调用其toString方法,然后执行上述规则如果是布尔值,转为数值然后执行数值比较
  相等与不等:    会将操作数转型后再比较
  如果是布尔值,转为数值后比较
  如果一个是字符串,另一个是数值,转为数值比较
  如果一个是对象,另一个不是,调用对象的valueOf方法,用得到的基本类型值进行比较
  null和undefined相等
  如果两个操作数都是对象,则比较他们是不是指向一个对象
  全等和不全等:
  不强制转型
  条件操作符:
  ...
  赋值操作符:
  复合赋值操作符:
  *= /= %= += -= <<= >>== >>>=
12.语句
 if语句:
  最佳实践,始终使用代码块
 do {}while();:
 while:
 for:
 for(var name in names){}:
 label:常用于多重循环中
 with:将代码的作用于设置到一个特定的对象中:
  with(expression){statement};
 switch:可以使用任意数据类型,case的值可以是变量也可以是常量.故意去掉break;以执行多条语句时,最好加上注释

猜你喜欢

转载自blog.csdn.net/weixin_40522938/article/details/80374051
今日推荐