【发布时间】:2011-07-22 16:40:43
【问题描述】:
可以使用typeof 来确定一个值是原始值还是装箱值。
考虑:
typeof "foo"; // "string"
typeof new String("foo"); // "object"
结合Object.prototype.toString我们可以定义以下两个函数
var toString = Object.prototype.toString;
var is_primitive_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "string";
};
var is_boxed_string = function(s) {
return toString.call(s) === "[object String]" && typeof s === "object";
};
这两个功能是否有任何用例? (或Number、Boolean 等的类似功能)。
这个问题背后的概念来自以下Comment by T.J.Crowder。
我们是否应该关心我们拥有的值是原始值还是盒装值?
【问题讨论】:
标签: javascript boxing typeof