We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JavaScript有7种内置类型:
typeof typeof 运算符用来查看 值 的 内置类型,它返回的是类型的字符串值,但是这七中类型和它们的字符串值并不一一对应。
其中 typeof null == "object" 而不是 "null", 这可以简单理解为JavaScript的一个陈年bug。另外还有一个"function"类型,但是实际上function不是一种内置类型,它只是object的一个子类型。可能为了方便而引入的一个feature。实际使用中typeof的功能还是很鸡肋的。
typeof null == "object"
"null"
"function"
instanceof instanceof 用来判断 变量 的 引用类型,引用类型通常是通过new一个构造函数生成的,如new String(),new Array()...
new
new String()
new Array()
如果你用typeof判断由上面引用类型new出来的变量,将统一得到"object"。因为这些引用类型的基本类型都是继承自Object。
var arr = new Array(); arr instanceof Array; //true arr instanceof Object; //true typeof arr; //"object" "abc" instanceof String; //false
所以instanceof是用来判断某个变量是否为构造函数的实例。通常我们需要自己封装一个方法来判断我们最终的值是什么类型的,并在业务中做进一步操作。下面是一种封装的方法。
Object.prototype.toString Object 引用对象内置了toString方法,不管对于基本类型值还是构造函数生成的引用类型值,都能正确地返回其类型,我们可以这么来封装一个对象判断方法。
function isType(type) { return function(obj) { return Object.prototype.toString.call(obj) == "[object " + type + "]" } } var isObject = isType("Object") var isString = isType("String") var isArray = Array.isArray || isType("Array") var isFunction = isType("Function") var isUndefined = isType("Undefined")
The text was updated successfully, but these errors were encountered:
No branches or pull requests
JavaScript有7种内置类型:
typeof
typeof 运算符用来查看 值 的 内置类型,它返回的是类型的字符串值,但是这七中类型和它们的字符串值并不一一对应。
其中
typeof null == "object"
而不是"null"
, 这可以简单理解为JavaScript的一个陈年bug。另外还有一个"function"
类型,但是实际上function不是一种内置类型,它只是object的一个子类型。可能为了方便而引入的一个feature。实际使用中typeof的功能还是很鸡肋的。instanceof
instanceof 用来判断 变量 的 引用类型,引用类型通常是通过
new
一个构造函数生成的,如new String()
,new Array()
...如果你用typeof判断由上面引用类型new出来的变量,将统一得到"object"。因为这些引用类型的基本类型都是继承自Object。
所以instanceof是用来判断某个变量是否为构造函数的实例。通常我们需要自己封装一个方法来判断我们最终的值是什么类型的,并在业务中做进一步操作。下面是一种封装的方法。
Object.prototype.toString
Object 引用对象内置了toString方法,不管对于基本类型值还是构造函数生成的引用类型值,都能正确地返回其类型,我们可以这么来封装一个对象判断方法。
The text was updated successfully, but these errors were encountered: