首页 > 社交 > 科普中国

JavaScript中的数据类型判断

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


Yfh拜客生活常识网

语法

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


Yfh拜客生活常识网

返回值

一个表示该对象的字符串Yfh拜客生活常识网


Yfh拜客生活常识网

描述

每个对象都有一个 toString() 方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString() 方法被每个 Object 对象继承。如果此方法在自定义对象中未被覆盖,toString() 返回 "[object type]",其中 type 是对象的类型。以下代码说明了这一点:Yfh拜客生活常识网

var o = new Object();
console.log(o.toString()); // [object Object]

备注:如 ECMAScript 5 和随后的 Errata 中所定义,从 JavaScript 1.8.5 开始,toString() 调用 null 返回[object Null]undefined 返回 [object Undefined]。请参阅下面的使用toString()检测对象类型Yfh拜客生活常识网


Yfh拜客生活常识网

示例

覆盖默认的 toString 方法Yfh拜客生活常识网

可以自定义一个方法,来取代默认的 toString() 方法。该 toString() 方法不能传入参数,并且必须返回一个字符串。自定义的 toString() 方法可以是任何我们需要的值,但如果它附带有关对象的信息,它将变得非常有用。Yfh拜客生活常识网


Yfh拜客生活常识网

以下代码定义了 Dog 对象类型,并创建了一个 Dog 类型的 theDog 对象:Yfh拜客生活常识网

function Dog(name,breed,color,sex) {
  this.name = name;
  this.breed = breed;
  this.color = color;
  this.sex = sex;
}
var theDog = new Dog("Gabby", "Lab", "chocolate", "female");

// 如果当前的对象调用了 toString() 方法,它将会返回从 Object继承而来的 toString() 方法的返回默认值:
console.log(theDog.toString()); // 返回 [object Object]

// 下面的代码中定义了一个叫做 dogToString() 的方法来覆盖默认的 toString() 方法。
// 这个方法生成一个 "property = value;" 形式的字符串,该字符串包含了当前对象的 name、breed、color 和 sex 的值。
Dog.prototype.toString = function dogToString() {
 var ret = "Dog " + this.name + " is a " + this.sex + " " + this.color + " " + this.breed;
 return ret;
}

// 也可以这样写
Dog.prototype.toString = function dogToString() {
  return `Dog ${this.name} is a ${this.sex} ${this.color} ${this.breed}`;
}
// 使用上述代码,任何时候在字符串上下文中使用 theDog.toString() 时,
// JavaScript 都会自动调用 dogToString() 方法(dogToString() 可以是一个匿名函数),并且返回以下字符串:
// "Dog Gabby is a female chocolate Lab"
console.log(theDog.toString()); // 返回 "Dog Gabby is a female chocolate Lab"

// 也可以这样写
Dog.prototype.toString = function dogToString() {
  return '[object Dog]';
}
Dog.prototype[Symbol.toStringTag] = 'Dog'

// 也可以这样写
theDog[Symbol.toStringTag] = 'Dog'

console.log(theDog.toString()); // 返回 [object Dog]
console.log(Dog.prototype.toString()); // 返回 [object Dog]
console.log(Dog.prototype.toString.call(theDog)); // 返回 [object Dog]
console.log(Object.prototype.toString.call(theDog)); // 返回 [object Object]    

相关阅读:

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