JS类型显式转换与隐式转换
tips
:欢迎关注我在github的博客点击查看 。
显示类型转换
虽然JavaScript可以自动做许多类型转换, 但有时仍需要做显式转换, 或者者为了使代码变 得清晰易读而做显式转换。
做显式类型转换最简单的方法就是使用Boolean()、Number()、String()或者Object()函 数。
Number( "3“ ) // 3String(false) // "false" 或者使用false.toString()Object(3) // Number(3)Boolean([]) // trueBoolean('') // false
这边拿Boolean([]) 和Boolean(”) 来说好了,有的同学可能会有困惑
来看看ECMA所述
image.png
image.png
Boolean()用的是ToBoolean方法;
参数为String中,string长度为0,也就是空字符串””时,Boolean显式转换为false,非空字符串为true;
而参数只需是Object类型,都被Boolean显示转换成true,而众所周知,[]数组属于Object类型的一种。
小测一下:Boolean(new Boolean(false))
这结果显示为啥?
答案是true,由于new Boolean(false)是对象而不是原始值
原始值也有人称为基本类型,但从翻译的角度来看Primitive Values应该译为原始值,而引用类型应该叫对象引用更好些,其英文是Object References
隐式转换
JavaScript中的某些运算符会做隐式的类型转换
x+"" // 等价于 String(x) 如88 + '6' => ’886’+x // 等价于 Number(x).也可以写成x-0 如+'886' => number类型的886!!x // 等价于Boolean(x) 如 !!'886' => true
后话
最后是不是觉得JS类型转换很令人头疼,深入研究会发现更头疼,比方 []
== ![]
为啥为true 所以开发中要用=== 代替 ==,少少量莫名其妙的隐式类型转换,能用上TS就更好了,让强大的类型推导为难你解忧。
Reference
《JavaScript权威指南》
ECMA
说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » JS类型显式转换与隐式转换
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » JS类型显式转换与隐式转换