美文网首页
关于js的类型转换(强制类型和隐式类型)

关于js的类型转换(强制类型和隐式类型)

作者: 程小E | 来源:发表于2017-03-09 14:10 被阅读142次

转 boolean 规则:

null, undefined, "", 0, -0, NaN 转换成布尔值是false, 剩下的全转化 true;

转 number 规则:

string '2.3.1' => NaN;

undefined => NaN;

null, '', false, [] ==> 0;

object => x Number(object.toString())

隐式类型转换(是==引起的转换)

  1. 对象和布尔值比较

对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字
[] == true; //false
[]转换为字符串'',然后转换为数字0,true转换为数字1,所以为false

  1. 对象和字符串比较

对象和字符串进行比较时,对象转换为字符串,然后两者进行比较。
[1,2,3] == '1,2,3' // true [1,2,3]转化为'1,2,3',然后和'1,2,3', so结果为true;

3、对象和数字比较

[1] == 1; // true `对象先转换为字符串再转换为数字,二者再比较 [1] => '1' => 1 所以结果为true

4、 字符串和数字比较

字符串和数字进行比较时,字符串转换成数字,二者再比较。
'1' == 1 // true

Paste_Image.png

来看一个有趣的题

[] == false;
![] == false;

  1. [] == false; //true这里是因为==符号会把两边的类型转换成一样的。这里会转成number[] == 0 // 把false转为number"" == 0 // 用array的valueOf/toString获取基本类型0 == 0 // 空字符串转成数字之后是0,Number('')

2.![] == false; //truejavascript中所有对象都是true。!true == false // []也是object,所以是truefalse == false // true取反是false

还有一些需要记住的,像:

undefined == null //true
undefined和null 比较返回true,二者和其他值比较返回false

Number(null) //0

相关文章

  • JavaScript类型转换

    在js中数据类型转换一般分为两种,即强制类型转换和隐式类型转换(利用js弱变量类型转换)。 强制类型转换 即通过使...

  • js中的类型转换

    在js中数据转换分为3种:隐式类型转换,强制类型转换,函数转换 1.隐式类型转换 (1):运算符转换 js中的值在...

  • JavaScript 常见面试题分析(四)

    01 强制类型转换和隐式类型转换 强制:parseInt、parseFloat、toString隐式:if、逻辑运...

  • 第三章 JavaScript中的数据间类型的转换

    数据的类型转换分为强制类型转换和非强制类型转换,强制类型转换也可以称为显示转换,非强制类型转换也可以称为隐式转换。...

  • JavaScript面试题-码动未来

    1.例举3种强制类型转换和2种隐式类型转换? 强制(parseInt,parseFloat,number)隐式(=...

  • 前端基础js篇

    1.强制类型转换和隐式类型转换 强制转换:parseInt()、parseFolat()、Number()、Str...

  • Java 学习笔记_2

    1、隐式转换 和 强制类型转换 隐式转换: 又叫自动类型转换。由系统自动完成的类型转换. 从存储范围小的类型到存储...

  • 关于js的类型转换(强制类型和隐式类型)

    转 boolean 规则: null, undefined, "", 0, -0, NaN 转换成布尔值是fals...

  • JavaSE之隐式转换、强制转换

    课前小例 转换类型:隐式转换(自动类型转换)、强制类型转换 隐式转换:两种类型彼此兼容,范围小的类型转成范围大的类...

  • 显式和隐式类型转换

    显式类型转换又称强制类型转换,如用parseIn、parseFloat等方法对数据进行类型转换; 隐式类型转换就是...

网友评论

      本文标题:关于js的类型转换(强制类型和隐式类型)

      本文链接:https://www.haomeiwen.com/subject/rymwgttx.html