Number()内部实现的原理:同isNaN() 也是先调用 valueOf() 然后调用 toString()。。所以可想而知,性能是比较差的。。所以所过只要要被转型的对象是字符串的话,就调用 parseInt() 或者 parseFloat()因为他们内部不需要对类型做判断。
parseInt() 和 parseFloat() 调用注意:从第一个 为数字的 字符开始 一直到 第一个部位数字的字符 的前一个数字 的这部分字符串 转换成数字
复制代码 代码如下:
alert(parseInt('123leb'));//123
alert(parseInt('123leb345'));//123
alert(parseInt('len234'));//NaN
当parseInt()里面的参数是 float类型的 那么只 取得 数字的 整数部分
复制代码 代码如下:
alert(parseInt(56.12));//56
6、String类型
1)(*重要*)在ECMAScript中 字符串有不变性:字符串创建之后就不会再改变。
要改变一个已经被赋值的字符串变量,首先要先销毁 变量中 字符串,然后再用一个包含 新值的字符串 填充变量。
复制代码 代码如下:
var d='hello';
d=d+' shit';//执行过程:先将 'hello'赋值一份,然后将 d 中的字符串清空,将字符串 'hello' 和 ' shit'进行拼接,然后赋值给 d 变量。(所以 字符串 的值 一旦 被 创建之后 就不会 改变)
2)toString()方法 将其他数据类型转换成 String类型。但是如果对 null 或undefined 进行操作的话就会报错。
3)但是String()方法同样能实现 toString()的效果,但是 可以对 null 和undefined进行操作。
内部原理:先 调用 toString(),如果可以转换成字符串,就将结果直接返回。否,再进行判断是 null 还是 undefined,然后返回‘null' 或 ‘undefined'
总结:如果知道 变量不可能是 null 或 undefined,就使用 toString()性能比 String(),因为 String()内部还要做判断,所以有损性能。
您可能感兴趣的文章: