一、函数类
isNaN()
该函数会对参数进行隐式的Number()转换,如果转换不成功则返回true;
alert()
输出的内容隐式的转换为字符串
二、运算符类
1.算数运算符
- * / %
如果操作数不是数值,将会隐式的调用Number()函数,按照这个函数的转换规则进行转换,如果转换不成功,整个表达式返回NaN
+
如果操作数都是数值,然后进行相加
任何数据类型和字符串相加,都会隐私的调用他们的toString()方法,然后返回他们拼接的结果。
如果操作数都是布尔值,那么进行Number()转换,false为0,true为1,进行相加。
2.关系运算符
关系运算符的操作数可以是任何类型,如果操作数不是数值类型,将会隐式的转换
(1)他运算的结果都是布尔值
(2)都是字符串的时候,他会先隐式转换成ASCII码然后进行比较他们的第一个字 母。
(3)都是数值的时候,他会正常比较
(4)当一个字符串,另一个是数值的时候,把字符串尝试转换成Number()数值类型, 然后进行比较,如果不能转换成数值类型,则会返回NaN,然后返回假
(5) undefined == null
(6)如果两个都是数值型字符串,那么他们隐式转换成ASCII码,也是只比较第一个
(7)如果一个数值和布尔值进行比较,会把布尔值隐式转换为数值再进行比较,true 为1,false为 0
3.等性运算符 == !=
会对操作数隐式的转换后再比较值
(1)如果其中至少有一个是布尔值,那么会隐式的调用Number()进行转换,然后比较。
(2)如果一个为字符串。另一个为数值,那么会隐式的调用Number()对字符串进行转 换,如果转换不成功,则返回false;
(3) undefined == null
(a) 比较字符串的时候是比较他们的ASCII码是否相等
(b) 比较两个数值的时候是比较他们的数值是否相等
(c) 比较函数的时候,判断他们的位置是否相等。
4.逻辑运算符
A. 放在表达式里面用于判断。
B. 给变量赋值
var a= b && c
如果一个运算数是对象,另一个是隐式的调用Boolean()函数,返回该对象。
如果两个运算数都是对象,返回第二个对象。
如果某个运算数是 null,返回 null。
如果某个运算数是 NaN,返回 NaN。
如果某个运算数是 undefined,发生错误。
var a=b ||c
如果一个运算数是对象,并且该对象左边的运算数隐式的调用Boolean()函数 值为false,则返回该对象。
如果两个运算数都是对象,返回第一个对象。
如果最后一个运算数是 null,并且其他运算数值均为 false,则返回 null。
如果最后一个运算数是 NaN,并且其他运算数值均为 false,则返回 NaN。
如果某个运算数是 undefined,发生错误。
三、语句类
if(表达式){
}else{
}
格式: var 变量= Boolean expression?真值:假值
while(){
}
if语句和三元表达式里面的表达式会隐式的调用Boolean()函数,按照这个函数的转换规则,转换为相应的布尔值
本文出自 “程序员技术交流” 博客,请务必保留此出处http://bjishu.blog.51cto.com/7481301/1670349
原文地址:http://bjishu.blog.51cto.com/7481301/1670349