首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

重学JS基础-类型检测和转换

检测基本类型 Object.prototype.toString.call(null); // "[object Null]" Object.prototype.toString.call(undefined...转化1.00和1.10这类浮点数的时候,会自动消掉后面的0 String(999) //"999" String(null) //'null' String(undefined) //"undefined...这个方法与String()类似,但是有两个不同点, 一个是这个方法变量后面加.toString来调用 一个是这个方法不能转化"null"和"undefined" var a = 123 console.log...但是js内部为我们完成了一系列处理(即装箱),使得它能够调用方法,实现的机制如下: 创建String类型的一个实例; 实例上调用指定的方法; 销毁这个实例; 后台隐式做了如下操作 var s1 =...new String("some text"); var s2 = s1.substring(2); s1 = null; 这样就完成装箱,我们也就能在s1上调方法了 拆箱转换:将引用类型对象转换为对应的值类型对象

1.4K10

谈谈JavaScript中装箱和拆箱

类型的一个实例; 实例中调用制定的方法; 销毁这个实例。...上面的三个步骤转换为代码,如下: # 1 var s1 = new String('call_me_R'); # 2 var s2 = s1.substring(2); # 3 s1 = null; 隐式装箱当读取一个基本类型值时...在这个基本类型的对象上调方法,其实就是在这个基本类型对象上调方法。这个基本类型的对象是临时的,它只存在于方法调用那一行代码执行的瞬间,执行方法后立即被销毁。...这也是基本类型上添加属性和方法会不识别或报错的原因了,如下: var s1 = 'call_me_R'; s1.job = 'frontend engineer'; s1.sayHello = function...'); 显示装箱的操纵可以对new出来的对象进行属性和方法的添加啦,因为通过通过new操作符创建的引用类型的实例,执行流离开当前作用域之前一直保留在内存中。

45220

数据类型判断

对基本数据类型 undefined, boolean, string, number 和引用数据类型 function 都可以正确判断,但是对 null,数组,对象则统一返回 “object”。...Object.prototype.toString.call() let arr = [1,2]; `Object.prototype.toString.call(arr)`; //"[object Array...]" 这个方法基本很完善,原理就是:在任何值上调用 Object 原生的 toString() 方法,都会返回一个格式为 [object NativeconstructorName] 的字符串。...使用 arr.toString() 的时候,它优先在原型链上找到并调用了重写的方法,最后输出的是 "1,2"。...Array() { // [native code] // }" 实际上,这里的 Object 是构造函数,既然是函数,就可以看作是 Function 构造函数实例化的对象,因此这里相当于函数对象调用了

1.4K20
领券