首页 > 社交 > 科普中国

JavaScript中的数据类型判断

常驻编辑 科普中国 2022-06-13 数据类型   数组   原型   字符串   函数   属性   对象   参数   类型   方法

我们再来看一下 Object 以及其原型上的 toString 方法:Yfh拜客生活常识网

Object.toString();           // "function Object() { [native code] }"
Object.prototype.toString(); // "[object Object]"

var o = new Object();
console.log(o.toString());            // 返回 [object Object]
console.log(o.__proto__.toString());  // 返回 [object Object]
console.log(o.__proto__.toString === Object.prototype.toString); // true

我们可以看出 Object 和它的原型链上各自有一个 toString 方法,Object 输出的是其函数体 "function Object() { [native code] }",而 Object 原型上输出的是其类型 "[object Object]"。Yfh拜客生活常识网


Yfh拜客生活常识网

数据类型Yfh拜客生活常识网

例子Yfh拜客生活常识网

输出Yfh拜客生活常识网

字符串Yfh拜客生活常识网

"foo".toString()Yfh拜客生活常识网

"foo"Yfh拜客生活常识网

数字Yfh拜客生活常识网

1.toString()Yfh拜客生活常识网

Uncaught SyntaxError: Invalid or unexpected tokenYfh拜客生活常识网

布尔值Yfh拜客生活常识网

true.toString()Yfh拜客生活常识网

"true"Yfh拜客生活常识网

undefinedYfh拜客生活常识网

undefined.toString()Yfh拜客生活常识网

Uncaught TypeError: Cannot read property 'toString' of undefinedYfh拜客生活常识网

nullYfh拜客生活常识网

null.toString()Yfh拜客生活常识网

Uncaught TypeError: Cannot read property 'toString' of nullYfh拜客生活常识网

StringYfh拜客生活常识网

String.toString()Yfh拜客生活常识网

"function String() {[native code]}"Yfh拜客生活常识网

NumberYfh拜客生活常识网

Number.toString()Yfh拜客生活常识网

"function Number() {[native code]}"Yfh拜客生活常识网

BooleanYfh拜客生活常识网

Boolean.toString()Yfh拜客生活常识网

"function Boolean() {[native code]}"Yfh拜客生活常识网

ArrayYfh拜客生活常识网

Array.toString()Yfh拜客生活常识网

"function Array() {[native code]}"Yfh拜客生活常识网

FunctionYfh拜客生活常识网

Function.toString()Yfh拜客生活常识网

"function Function() {[native code]}"Yfh拜客生活常识网

DateYfh拜客生活常识网

Date.toString()Yfh拜客生活常识网

"function Date() {[native code]}"Yfh拜客生活常识网

RegExpYfh拜客生活常识网

RegExp.toString()Yfh拜客生活常识网

"function RegExp() {[native code]}"Yfh拜客生活常识网

ErrorYfh拜客生活常识网

Error.toString()Yfh拜客生活常识网

"function Error() {[native code]}"Yfh拜客生活常识网

PromiseYfh拜客生活常识网

Promise.toString()Yfh拜客生活常识网

"function Promise() {[native code]}"Yfh拜客生活常识网

ObjectYfh拜客生活常识网

Object.toString()Yfh拜客生活常识网

"function Object() {[native code]}"Yfh拜客生活常识网

MathYfh拜客生活常识网

Math.toString()Yfh拜客生活常识网

"[object Math]"Yfh拜客生活常识网

WindowYfh拜客生活常识网

Window.toString()Yfh拜客生活常识网

"function Window() { [native code] }"Yfh拜客生活常识网

windowYfh拜客生活常识网

window.toString()Yfh拜客生活常识网

"[object Window]"Yfh拜客生活常识网

数据类型调用 toString() 方法的返回值,由此我们看出不同的数据类型都有其自身toString()方法Yfh拜客生活常识网


Yfh拜客生活常识网

// Boolean 类型,tag 为 "Boolean"
console.log(Object.prototype.toString.call(true));            // => "[object Boolean]"

// Number 类型,tag 为 "Number"
console.log(Object.prototype.toString.call(1));               // => "[object Boolean]"

// String 类型,tag 为 "String"
console.log(Object.prototype.toString.call(""));              // => "[object String]"

// Array 类型,tag 为 "String"
console.log(Object.prototype.toString.call([]));              // => "[object Array]"

// Arguments 类型,tag 为 "Arguments"
console.log(Object.prototype.toString.call((function() {
  return arguments;
})()));                                                       // => "[object Arguments]"

// Function 类型, tag 为 "Function"
console.log(Object.prototype.toString.call(function(){}));    // => "[object Function]"

// Error 类型(包含子类型),tag 为 "Error"
console.log(Object.prototype.toString.call(new Error()));     // => "[object Error]"

// RegExp 类型,tag 为 "RegExp"
console.log(Object.prototype.toString.call(/d+/));           // => "[object RegExp]"

// Date 类型,tag 为 "Date"
console.log(Object.prototype.toString.call(new Date()));      // => "[object Date]"

// 其他类型,tag 为 "Object"
console.log(Object.prototype.toString.call(new class {}));    // => "[object Object]"

// window 全局对象
console.log(Object.prototype.toString.call(window);           // => "[object Window]")    

相关阅读:

  • 设计模式之原型模式
  • Python八大数据类型
  • go语言如何入门呢?
  • 介绍一下西门子S7300PLC的S5定时器的S5TIME数据格式
  • 如何输入数组(如何将数字输入数组)
  • 指针怎么用 c语言指针与一维数组?
  • java
  • 集合篇
  • GO学习
  • 技巧篇:常用的vba代码汇总
    • 网站地图 |
    • 声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不做权威认证,如若验证其真实性,请咨询相关权威专业人士。