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
Object的每个实例都有三个方法: valueOf() toString() toLocaleString()
Object的每个实例都有三个方法:
语法:object.valueOf()(object的首字母为大写,意为调用者。若为Object,则为Object应用类型) 返回值:该对象的原始值。
object.valueOf()
很少需要自己调用valueOf方法;对象在某些情况下需要使用原始值参加运算,JavaScript后台会自动调用。
Object的原生内置对象(Date\Boolean\Number\String)会重写该方法。 如果该对象没有原始值(Object\Function\Array),则返回对象本身。 大部分的内置引用类型的实例都是返回本身,所以该方法是为基本包装类型而设计的。
语法:object.toString() 返回值:该对象的字符串。
object.toString()
基本类型调用toString():
引用类型(对象,包括基本包装类型的对象)调用toString(): 如果此方法在自定义对象中未被覆盖,返回 "[object type]"(这也是字符串),其中type是对象的类型。
"[object type]"
Object.prototype.toString.call(new Date); // [object Date] Object.prototype.toString.call(new String); // [object String] Object.prototype.toString.call(Math); // [object Math] //Since JavaScript 1.8.5 Object.prototype.toString.call(undefined); // [object Undefined] Object.prototype.toString.call(null); // [object Null]
Object的原生内置对象(Date\Boolean\Number\String)会重写覆盖该方法。
var monthNames = ['Jan', 'Feb', 'Mar', 'Apr']; var myVar = monthNames.toString(); // 输出 "Jan,Feb,Mar,Apr" to myVar.
var x = new Date(); myVar = x.toString(); // 把类似于下面格式的值赋给 myVar, // Mon Sep 28 1998 14:36:22 GMT-0700 (Pacific Daylight Time)
var x = new String("Hello world"); alert(x.toString()) // 输出 "Hello world"
var flag = new Boolean(true) var myVar = flag.toString()// 输出 "true"
String()方法的转化规则:
"null"
"undefined"
String()是转型函数,同时String()也是构造函数,new String()可以创建String的对象。
new String()
从JavaScript1.8.5开始toString()调用 null返回"[object Null]",undefined 返回"[object Undefined]"。
var flag = new Boolean(true) var myVar = flag.toString()// 输出 "true" var myVar2 = String(flag)// 输出 "true"
每一个基本类型(string\number\boolean)都有一个对应的基本包装类型。 基本包装类型存在的意义:只有引用类型的实例具有方法,这样每一个基本类型也能有方法。(基本类型的值调用方法时,JavaScript后台自动将生成对应的基本类型的实例,随后销毁该实例)
当然也可以强制生成一个基本类型的实例对象,使用new操作符,不过这样没有意义。
new
var numberObject=new Number(10); var numberValue=10; alert(typeof numberObject); //"object" alert(typeof numberValue); //"number" alert(numberObject instanceof Number); //true alert(numberValue instanceof Number); //false
The text was updated successfully, but these errors were encountered:
No branches or pull requests
valueOf()
语法:
object.valueOf()
(object的首字母为大写,意为调用者。若为Object,则为Object应用类型)返回值:该对象的原始值。
很少需要自己调用valueOf方法;对象在某些情况下需要使用原始值参加运算,JavaScript后台会自动调用。
Object的原生内置对象(Date\Boolean\Number\String)会重写该方法。
如果该对象没有原始值(Object\Function\Array),则返回对象本身。
大部分的内置引用类型的实例都是返回本身,所以该方法是为基本包装类型而设计的。
toString()
语法:
object.toString()
返回值:该对象的字符串。
基本类型调用toString():
引用类型(对象,包括基本包装类型的对象)调用toString():
如果此方法在自定义对象中未被覆盖,返回
"[object type]"
(这也是字符串),其中type是对象的类型。Object的原生内置对象(Date\Boolean\Number\String)会重写覆盖该方法。
该 toString 方法总是返回一个美式英语日期格式的字符串。
String()
String()方法的转化规则:
"null"
。"undefined"
。String()是转型函数,同时String()也是构造函数,
new String()
可以创建String的对象。String() vs. toString()
基本包装类型——特殊的引用类型
每一个基本类型(string\number\boolean)都有一个对应的基本包装类型。
基本包装类型存在的意义:只有引用类型的实例具有方法,这样每一个基本类型也能有方法。(基本类型的值调用方法时,JavaScript后台自动将生成对应的基本类型的实例,随后销毁该实例)
当然也可以强制生成一个基本类型的实例对象,使用
new
操作符,不过这样没有意义。参考资料
The text was updated successfully, but these errors were encountered: