javascript为什么需要隐式转换?如果没有会出现什么情况?
找了一圈没有看到关于这个的讨论,只好自己研究了,可能不一定正确,自行辨知。
郁闷就是郁闷在好好的,为什么要搞个隐式转换,一般来讲这样去想不太可能想出个结果,毕竟这门语言不是自己写的,如果换一个问题,可能会好点,如果没有隐式转换javscript会成什么样子?
比如下面这一段代码:
console.log("10" - 1)
如果没有隐式转换,也许会报错吧?或者返回NaN?,不太确定,但假如说javascript根本不存在隐式转换,或许你不会这样去写代码吧,那么就更奇怪了,设计隐式转换究竟何目的?目前能想到的一点就是因为它是一门动态语言,值是运行时才知道的,因此有很多不确定的因素,这可能是作者设计隐式转换的目的吧。
什么是隐式转换
console.log(1 + "2");//12
可以看到一个是Number类型的值和一个String类型的值进行了相加,结果是12。那为什么是12呢?如果是按照数字相加应该是3,但这里却是将1和2进行了字符串拼接,也就是说这里的1被转换成了字符串1。
结论
如果两个值(也可以是多个)的类型不同,但你却拿它们来运算,它们就会进行隐式转换,当然也不只是运算才会产生隐式转换。
谁被转换
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26