js中隐式数据类型转换的方向(+、==)

发布时间:2022-07-05 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了js中隐式数据类型转换的方向(+、==)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文主要是关于各种数据类型之间做“+”和”==“运算时数据类型的转化方向,对于类型的具体转换方法及转换值不做过多赘述。

常见的数据类型转换方法及转换值

// 转换方法
string -> number: (1) Number(str), (2) +str
number -> string: (1) String(num), (2) num+''
otherTyPE -> boolean: (1) Boolean(other), (2) !!other

// 特殊的转换值
Number(undefined); // NaN
Number([23]); // 23
({}).toString(); // '[object Object]'

1.算数运算符(+)

  • 拼接(字符串)
  • 求和(数字)

js中隐式数据类型转换的方向(+、==)

  •  示例
[23] + {}; // ([23] -> string) + ({} -> string) = '23[object Object]'
[1] + 23; // ([] -> string) + (23 -> string) = '123'
null + true; // (null -> number) + (true -> number) = 1
undefined + null; // (undefined -> number) + (null -> number) = NaN
[] + undefined; // ([] -> string) + (undefined -> string) = 'undefined'

 2.比较运算符(==)

  • NaN和任何类型比较都为false,包括它本身。
  • (null 或 undefined) 与 (null 或 undefined) 比较时才为true,其他都为false。
  • 对象与对象之间比较时,用内存地址进行比较
  • 对象与数字进行比较时,先转化为字符串,再转换成数字。

js中隐式数据类型转换的方向(+、==)

  •  示例
[23] == {}; // 比较两者的内存地址是否相同, false
[23] == 23; // ([23] -> string -> number) === 23, true
[] == true; // ([] -> string -> number) === (true -> number), false
true == '1'; // (true -> number) === ('1' -> number), true
({}) == 0; // ({} -> string -> number) === 0, false

脚本宝典总结

以上是脚本宝典为你收集整理的js中隐式数据类型转换的方向(+、==)全部内容,希望文章能够帮你解决js中隐式数据类型转换的方向(+、==)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。