运算符中的隐士类型转换
1 、字符的比较规则:逐位比较,得到结果,就返回
2、隐士类型转换:
+ 只要有一个为字符串,都变换成字符串
- * / %只要有一个为数值,都变成数值
var a = 101;
var b = "20";
1 console.log(a > b)//true 2 console.log(a >= b)//true 3 console.log(a < b)//false 4 console.log(a <= b)//false 5 console.log(a != b)//true
var a = "10";
var a = "101"; var b = "20";
console.log(a > b)//false console.log(a >= b)//false console.log(a < b)//true console.log(a <= b)//true console.log(a != b)//true
if()内的隐士类型转换
数值:非0为true
字符:非空为true
对象:为true
undefined,null,NaN都为false
函数:为true
console.log(typeof null)//object console.log(null)//null
true为1,false为0,null为0
console.log(1 + 1) //2
console.log(1 + true) //2
console.log(1 + false) //1
console.log( 1 + undefined ) //NaN
console.log( 1 + NaN ) //NaN
console.log( 1 + null ) //1
console.log(1 + {name:"admin"}) //1[object Object]
//当遇到数组时,相当于将数组两边的中括号丢掉,作为字符串拼接,同时省略undefined和null
console.log(1 + [true,undefined,null,NaN,function(){}])//1true,,,NaN,function(){}
console.log( 1 == true ) //t
console.log( 2 == true ) //f
console.log( 1 == undefined) //f
console.log( 0 == undefined) //f
console.log( 1 == NaN) //f
console.log( 0 == NaN) //f
console.log( 1 == null) //f
console.log( 0 == null) //f
console.log(undefined == NaN) //f
console.log(null == NaN) //f
console.log(undefined == null) //t
console.log(undefined === null) //f

浙公网安备 33010602011771号