js 数据类型 ==

1. 5种基本数据类型

undefined null boolean number string

2. 引用类型

object

3.==运算符

(1)两个值类型相同,进行===比较

 a.两个值都是相同基本数据类型,值相等时返回true,否则返回false。

console.log('a' == 'a');//true

console.log(1 == 1);//true

console.log(true == true);//true

console.log('a' == 'b');//false

 b.两个值都是引用类型,引用同一对象时,返回true,否则返回false。

var obj1 = {a:1,b:2};
var obj2 = obj1;
var obj3 = {a:3,b:2};

console.log(obj1 == obj2);//true

console.log(obj1 == obj3);//false

 c.两个值都是NaN,返回false。

console.log(NaN == NaN);//false
console.log(NaN === NaN);//false

(2)两个值类型不同

  a.一个值是null,一个值是undefined,返回true。

console.log(null == undefined);//true
console.log(null === undefined);//false

  b.一个值是boolean值,把它转化成数字。true为1,false为0。

console.log(true == 1);//true, 先把true转为1,再比较

console.log(false == 0);//true,先把false转为0, 再比较

console.log(true == 2);//false

  c.一个值是string值,另一个值是number,把string转化为number,再进行比较。

var a = '1';
var b = 1;

console.log(a == b);//true,字符串‘1’ 转化为1,再比较。
console.log(true = a);//true,true转为数字1,然后a字符串1转为数字1,然后比较

  d.一个值是object,另外一个值是string或number,把object转化为原始值再比较。

  e.一个值是null或undefined,另外一个值不是null也不是undefined,返回false。(null与undefined不能转化为其他类型的值)

console.log(null == true);//false
console.log(undefined == 1);//false
console.log(undefined == false);//false

  f.一个值是NaN返回false。

console.log(NaN == 0);//false
console.log(NaN == false);//false
console.log(NaN == 1);//false

 

posted @ 2016-07-04 14:45  springmin  阅读(142)  评论(0编辑  收藏  举报