运算符中的隐士类型转换

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

 

 

posted @ 2019-05-13 15:41  进击的三三  阅读(317)  评论(0)    收藏  举报