利用Object.prototype.toString.call(obj)判断数据类型
时间: 2023-12-23 16:05:03 浏览: 67
可以的,使用这个方法可以判断出一个 JavaScript 变量的数据类型。这个方法返回一个字符串,包含了变量的数据类型信息。例如,对于一个字符串变量,它返回的字符串是"[object String]"。可以通过判断这个字符串中是否包含某个关键字来判断变量的数据类型。下面是一个示例代码:
```
function getType(obj) {
return Object.prototype.toString.call(obj).slice(8, -1);
}
console.log(getType("hello")); // "String"
console.log(getType(123)); // "Number"
console.log(getType(true)); // "Boolean"
console.log(getType(null)); // "Null"
console.log(getType(undefined));// "Undefined"
console.log(getType({})); // "Object"
console.log(getType([])); // "Array"
console.log(getType(function(){})); // "Function"
```
相关问题
Object.prototype.toString和 Object.prototype.toString.call
Object.prototype.toString是JavaScript中的一个方法,用于返回一个表示对象的字符串。它的主要作用是获取对象的类型信息。
而Object.prototype.toString.call是通过调用Object.prototype.toString方法,并将其作为函数来调用,可以用来获取任意值的类型信息。
例如,我们可以使用Object.prototype.toString.call来获取一个变量的类型信息,如下所示:
```javascript
const obj = {};
const arr = [];
const str = "Hello";
const num = 123;
const bool = true;
console.log(Object.prototype.toString.call(obj)); // [object Object]
console.log(Object.prototype.toString.call(arr)); // [object Array]
console.log(Object.prototype.toString.call(str)); // [object String]
console.log(Object.prototype.toString.call(num)); // [object Number]
console.log(Object.prototype.toString.call(bool)); // [object Boolean]
```
通过调用Object.prototype.toString.call并传入不同的值,我们可以获取到对应值的类型信息。
object.prototype.tostring.call(obj) === '[object array]
object.prototype.toString.call(obj) === '[object Array]' 是用来判断一个对象是否为数组的一种常用方法。在这个表达式中,object是Object.prototype的一个实例,而tostring是Object.prototype的一个方法,call(obj)表示将这个方法应用于一个特定的对象obj上。
在JavaScript中,Object.prototype.toString.call()方法返回一个对象的内部属性[[class]]的字符串表示。
当obj为一个数组时,[object Array]会被返回。
举个例子,var arr = [1, 2, 3];
Object.prototype.toString.call(arr) === '[object Array]' 的返回值为true,因为arr是一个数组。
如果将这个方法应用于其他类型的对象,比如字符串、数字等,则会返回对应的类型字符串。
例如:
var str = 'hello';
Object.prototype.toString.call(str) === '[object String]' 的返回值为true,因为str是一个字符串。
在JavaScript中,使用Object.prototype.toString.call(obj)来判断一个对象的类型是一种广泛使用的方法,因为它可以准确地返回对象的类型字符串。对于判断数组,使用 '[object Array]' 来判断是非常常见的用法。