美文网首页
关于JavaScript的隐式转换

关于JavaScript的隐式转换

作者: 疯狂的阿金 | 来源:发表于2018-01-26 20:21 被阅读77次

一、 数字与数字之间的转换

1.字符串加数字,数字就会转成字符串。

2.数字减字符串,字符串转成数字。如果字符串不是纯数字就会转成NaN。字符串减数字也一样。两个字符串相减也先转成数字。

3.乘,除,大于,小于跟减的转换也是一样。

console.log(10+'20')  //2010

console.log(10-'20' )   //-10

number console.log(10-'one')   //NaN not a number

console.log(10-'101a')   //NaN

console.log(10*'20')    //200

number console.log('10'*'20')    //200

number console.log(20/'10')    //2 numbe

r console.log('20'/'10')    //2 number

console.log('20'/'one')    //NaN


二、关于 ==

1.undefined等于null

2.字符串和数字比较时,字符串转数字

3.数字为布尔比较时,布尔转数字

4.字符串和布尔比较时,两者转数字

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

console.log('0'==0) //true 字符串转数字

console.log(0==false) //true 布尔转数字

console.log('0'==false) //2个都转成数字

console.log(null==false) //false

console.log(undefined==false)//false


三 、比较的隐式转换

1. 数组和布尔值比较

对象和布尔值进行比较时,对象先转换为字符串,然后再转换为数字,布尔值直接转换为数字

[ ] == true;  //false  [ ]转换为字符串' ',然后转换为数字0,true转换为数字1,所以为false

[ ] == false;

![ ] == false;

这两个的结果都是true,第一个是,对象 => 字符串 => 数值0 false转换为数字0,这个是true应该没问题,

第二个前边多了个!,则直接转换为布尔值再取反,转换为布尔值时,空字符串(' '),NaN,0,null,undefined这几个外返回的都是true, 所以! [ ]这个[ ] => true 取反为false,所以[ ] == false为true

2. 数组和字符串比较

对象和字符串进行比较时,对象转换为字符串,然后两者进行比较。

[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.对象和数组布只有在比较布尔值时候有所不同

//要注意空数组([ ])和空对象({ }):

console.log(Boolean([ ])) //true

console.log(Boolean({ })) //true

console.log(Number({ })) //NaN

console.log(Number([ ])) //0

console.log({ } == false) //false

console.log(!{ } == false) //true


四 、在多个加号或者减号的时候

在加号后多个加号或者减号会进行隐式转换

console.log(1 + +"2" + "2");//32

console.log(1 + + +"2" + "2");//32

console.log(1 + -"1" + "2");//02

console.log(+"1" + "1" + "2");//112

console.log( "A" - "B" + "2");//NaN2

console.log( "A" - "B" + 2);//NaN

console.log("b"-2)//NaN

如果有错误请大家积极指出。

相关文章

  • 2-JavaScript-的包装类和基本检测 隐式转换

    1 +new Date() --隐式转换 JavaScript的隐式转换,在使用“ + - | ~~ ”的时候会先...

  • javascript数据类型隐式转换

    javascript数据类型隐式转换 一、函数类 isNaN()改函数会对参数进行隐式的Number()转换,如果...

  • 关于JavaScript的隐式转换

    一、 数字与数字之间的转换 1.字符串加数字,数字就会转成字符串。 2.数字减字符串,字符串转成数字。如果字符串不...

  • js类型转换

    javaScript类型转换 标签(空格分隔): 未分类 隐式转换 当遇到以下几种情况,JavaScript会自动...

  • 03.【JS怪癖1】隐式类型转换

    参考资料:JavaScript 的怪癖 1:隐式类型转换 1.布尔值的隐式转换 1.1 转为false 四种情况:...

  • JavaScript精选练习(1)

    打印100以内的所有质数 写出斐波那契数列 如果对于隐式类型转换不太了解可以看看:JavaScript隐式类型转换

  • JavaScript预编译

    JavaScript预编译,你不知道的JavaScript 隐式类型转换 typeof   typeof 用来校验...

  • javascript 隐式转换

    1、如果两个不同的类型做加减运算,会做隐式转换 结果 第一条语句在运算前,数字50会被转换成字符串"50",第二条...

  • javascript 隐式转换

    你有没有在面试中遇到特别奇葩的js隐形转换的面试题,第一反应是怎么会是这样呢?难以自信,js到底是怎么去计算得到结...

  • C++类型转换

    C++的类型转换分为隐式转换和显式转换 隐式转换举例: int i=4; double d=i;//隐式转换 显式...

网友评论

      本文标题:关于JavaScript的隐式转换

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