前言:
此刻同学们对“js将科学计算法转换为数字”大约比较着重,你们都需要知道一些“js将科学计算法转换为数字”的相关资讯。那么小编同时在网摘上收集了一些有关“js将科学计算法转换为数字””的相关资讯,希望我们能喜欢,小伙伴们一起来学习一下吧!Hello,大家好。很多前端面试的试题都会考到其他类型到数值类型的转换。特别是在隐式转换的时候会特别的多,现在我们就对这一点进行讨论:
其他类型转换为数值类型的值大致分为4种情况:
(1)基本类型的参数转换为数值:
基本类型转换为数值其实很简单也很基础但是需要加强记忆:
null:0
undefined:NAN
数值:保持不变
true:1
flase:0
string:类似于使用Number的方法将字符串转换为数值,即数值的字符串形式可以正确的转换为数值其他的则会转换为NAN。
(2)正常对象类型转换为数值
正常对象转换为数值首先将会进行是否toString的方法转换为基本的数据类型,然后再使用ToNumber的方法转换为数值,比如:
[]:0
[3]:4
[1,2,3]先转换为字符串为1,2,3再转换为数值NAN
{}转换为字符串的形式为"Object object",再转换为数值NAN
(3)定义valueof方法的对象
对于对象具有valueof方法,将会调用valueof方法,并对valueof方法的返回值进行转换参考上述的(1)和(2)。
比如对象的vlaueof方法为的返回值为字符串"12",定义对象a={a:"jkdgh"}。进行转换为数值时根据得到的返回值为"12",再将其转换为数值12.
(4)定义toString方法的方法的对象
对于对象具有toString方法,将会调用toString方法,并对toString方法的返回值进行转换参考上述的(1)和(2)。
比如对象的toString方法为的返回值为字符串"789",定义对象a={a:"jkdgh"}。进行转换为数值时根据得到的返回值为"789",再将其转换为数值789.
(5)由于对象的valueof方法和toString方法都会影响对象转换为数值的结果,现在对对象同时定义valueof方法和toString方法进行查看两者的优先级。
定义valueof方法返回字符串12,定义toString方法返回字符串"789",得到的对象的值为12,所有valueof的优先级高于toString,在有valueof的情况下优先使用valueof。
例子如下:
Object.prototype.valueOf=function(){return "12"}
Object.prototype.toString=function(return "789")
a={a:4}
a:4}
当使用+a强制把对象a转换为整数时得到的数据为12.
标签: #js将科学计算法转换为数字 #js类型转换为数字