字符串:数组中的toString,toLocalString,valueOf方法有什么区别,
分享于 点击 37506 次 点评:217
字符串:数组中的toString,toLocalString,valueOf方法有什么区别,
Array、Boolean、Date、Number等对象都具有toString()、toLocaleString()、valueOf()三个方法,那这三个方法有什么区别???
var obj1=[1,2,3,4,5];
var obj2=[5,4,3,2,1];
var obj3=[obj1,obj2];
console.log(obj1);
console.log(obj2);
console.log(obj3);
console.log(typeof obj3.valueOf());
console.log(typeof obj3.toString());
console.log(typeof obj3.toLocaleString());
执行结果如下
根据输出结果可以发现toString()和toLocaleString()方法输出的内容是一样的,且都为字符串形式.而valueOf输出的是这个对象本身的值.
那么,toString、toLocalString方法有什么区别呢?
看下面例子:
var date = new Date();
console.log(date.valueOf());
console.log(date.toString());
console.log(date.toLocaleString());
console.log(typeof date.valueOf());
console.log(typeof date.toString());
console.log(typeof date.toLocaleString());
结果是:
- toString()方法获取的是String(传统字符串),而toLocaleString()方法获取的是LocaleString(本地环境字符串)。
- 如果你开发的脚本在世界范围都有人使用,那么将对象转换成字符串时请使用toString()方法来完成。
- LocaleString()会根据你机器的本地环境来返回字符串,它和toString()返回的值在不同的本地环境下使用的符号会有微妙的变化。
所以使用toString()是保险的,返回唯一值的方法,它不会因为本地环境的改变而发生变化。如果是为了返回时间类型的数据,推荐使用LocaleString()。若是在后台处理字符串,请务必使用toString()。
既然Array、Boolean、Date、Number等对象都具有toString()、toLocaleString()、valueOf()三个方法,那这三个方法针对不同对象有什么区别???
一、JS Array
例子:
var array = new Array("niu","li","na");
console.log(array.valueOf());
console.log(array.toString());
console.log(array.toLocaleString());
结果:
- valueOf:返回数组本身
- toString():把数组转换为字符串,并返回结果,每一项以逗号分割。
toLocalString():把数组转换为本地数组,并返回结果
* 二、JS Boolean *
例子:
var boolean = new Boolean();
console.log(boolean.valueOf());
console.log(boolean.toString());
结果:
- valueOf:返回 Boolean 对象的原始值。
- toString():根据原始布尔值或者 booleanObject 对象的值返回字符串 “true” 或”false”。默认为”false”。
- toLocalString():Boolean对象没有toLocalString()方法。但是在Boolean对象上使用这个方法也不会报错。
三、JS Date
例子:
var date = new Date();
console.log(date.valueOf());
console.log(date.toString());
console.log(date.toLocaleString());
结果:
- valueOf:返回 Date 对象的原始值,以毫秒表示。
- toString():把 Date 对象转换为字符串,并返回结果。使用本地时间表示。
- toLocalString():可根据本地时间把 Date 对象转换为字符串,并返回结果,返回的字符串根据本地规则格式化。
四、JS Math
例子:
console.log(Math.PI.valueOf());
console.log(Math.PI.toString());
console.log(Math.PI.toLocaleString());
console.log(typeof Math.PI.valueOf());
console.log(typeof Math.PI.toString());
console.log(typeof Math.PI.toLocaleString());
结果:
- valueOf:返回 Math 对象的原始值。
五、JS Number
例子:
var num = new Number(1337);
console.log(num.valueOf());
console.log(num.toString());
console.log(num.toLocaleString());
结果:
- valueOf:返回一个 Number 对象的基本数字值。
- toString():把数字转换为字符串,使用指定的基数。
- toLocalString():把数字转换为字符串,使用本地数字格式顺序。
六、JS String
例子:
var string = new String("abc");
console.log(string.valueOf());
console.log(string.toString());
console.log(string.toLocaleString());
console.log(typeof string.valueOf());
console.log(typeof string.toString());
console.log(typeof string.toLocaleString());
结果:
- valueOf:返回某个字符串对象的原始值。
- toString():返回字符串。
相关文章
- 暂无相关文章
用户点评