Appearance
重其它类型转字符串
本节目标:理解“重其它类型转字符串”的核心思路,并能把它用于实际开发或面试表达。 有两种方式: 一、
toString()方法 数值、布尔值、对象和字符串值(每个字符串也都有一个
toString()方法,该方法返回字符串的一个副本)都有
toString()方法。 但null和undefined值没有这个方法。
var age = 11;
var ageAsString = age.toString(); //字符串
"11"
var found = true;
var foundAsString = found.toString(); //字符串"true"
数值的toString()方法 默认情况下不传参数的情况下,
toString()方法以十进制格式返回数值的字符串表示。 如果传递一个参数,则表示输出数值的基数,可以输出以二进制、八进制、十六进制,乃至其他任意有效进制格式表示的字符串值。如:
var num = 10;
alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"二、
String()函数 它能够将任何类型的值包括null或undefined转换为字符串。 其转换规则如下:
如果值有
toString(),则调用该方法(没有参数)并返回相应的结果;
如果值是
null,则返回'null';如果值是
undefined,则返回'undefined',
各类型数据转字符串
Null 和 Undefined 类型 ,null 转换为 "null",undefined 转换为 "undefined",Boolean 类型,true 转换为 "true",false 转换为 "false"。Number 类型的值直接转换,不过那些极小和极大的数字会使用指数形式,如果是非2进制数字的字符串,会先转成10进制数字,再转成字符串。
Symbol 类型的值直接转换,但是只允许显式强制类型转换,使用隐式强制类型转换会产生错误。
对普通对象来说,除非自行定义 toString() 方法,否则会调用 toString()(Object.prototype.toString())来返回内部属性 [[Class]] 的值,如"[object Object]"。如果对象有自己的 toString() 方法,字符串化时就会调用该方法并使用其返回值。
