码迷,mamicode.com
首页 > 编程语言 > 详细

我所理解的javascript的隐性类型转化。

时间:2017-03-22 13:14:02      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:false   改变   对象类型   打印   boolean   string   java   也会   ova   

    javascript中的类型转换可以分为隐性类型转换,显性类型转换。显性转换就是在代码中通过方法直接改变数据类型。常见的方法有toString,toValue,toNumber,toBoolean等等。隐性类型就是程序在执行是会自动的就进行类型转换。

    javascript中最常见的会进行隐性类型转换的操作符是==,当然操作符+也会进行隐性类型转换。

    下面举几个例子。

    console.log(undefined==‘undefined‘);

    console.log(undefined==null);

    console.log(true==2);

    console.log({}=={});

   第一个打印的是false,第二个打印的是true,第三个打印的是false,第四个打印的是false.

    第一个false是因为undefined不会进行隐性类型转换。

   第一个true,虽然undefined不会进行隐性类型转换,但是null和undefined 相等;

   第二个false是因为true会转换为1,而不是2转换成true。这个问题相信大多数初学者会遇到。

   第四个false是因为对象之间的比较是比较引用之间的比较。第一个{}对象跟第二个{}对象地址是不同的。

   总结下:==操作符

   1.看操作数有没有boolean类型,如果有先将boolean类型变成number类型。

   2.看操作数有没有字符串类型,如果是两个都是字符串类型就直接比较;如果一个是字符串,一个是对象,对象转字符串再比较;如果一个是字符串,一个是数值,字符串转数值再比较。

   3.看操作数有没有对象类型,如果两个都是对象就直接比较;如果一个是对象一个是数值,对象转数值再比较。

   4.null,undefined不会进行类型转换,但是null,undefined相等。

 

我所理解的javascript的隐性类型转化。

标签:false   改变   对象类型   打印   boolean   string   java   也会   ova   

原文地址:http://www.cnblogs.com/smallLong/p/6599010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!