JavaScript中toString()和valueOf()

特别声明:本站已开启付费阅读,年费会员价 ¥365.00元。如果您喜欢小站的内容,可以点击开通会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!(^_^)

在《JavaScript中数据类型转换》一文中主要学习了JavaScript中的数据类型、数据类型检测和数据类型转换。从这篇文章中了解到了通过String()toString()可以将值转换为字符串。那么在JavaScript中还有很多有意思的东西,也是让我这样的生手感到困惑的东西。比如String()new String()有何不同,又比如这篇文章的标题toString()valueOf()又有何不同。

String() vs toString()

通过前面的学习,知道String()toString()都可以转换为字符串类型,但这两者之间还是有所区别的。

在JavaScript中,可以将JavaScript中任何数据类型转换为字符串。

console.log(String(123), typeof String(123));
console.log(String('123'), typeof String('123'));
console.log(String(function fn(){return 1}), typeof String(function fn(){return 1}));
console.log(String([1,2,3]), typeof String([1,2,3]));
console.log(String({a: 1}), typeof String({a: 1}));
console.log(String(null), typeof String(null));
console.log(String(undefined), typeof String(undefined));
console.log(String(new Date()), typeof String(new Date()));
console.log(String(/^(.)*$/), typeof String(/^(.)*$/));

在JavaScript中,每个数据类型都有一个.toString()的方法:

在JavaScript中除了nullundefined之外的任何数据类型都可以通过.toString()方法转换成字符串。比如:

console.log('=========数组:array.toString()========')
var months = ['Jan', 'Feb', 'Mar'];
console.log(months.toString(), typeof months.toString());

console.log('=========布尔值:boolean.toString()========')
var bool = true;
console.log(bool.toString(), typeof bool.toString());

console.log('=========日期:date.toString()========')
var date = new Date();
console.log(date.toString(), typeof date.toString());

console.log('=========函数:function.toString()========')
var fn = function(a, b) {return a + b};
console.log(fn.toString(), typeof fn.toString());

console.log('=========数值:number.toString()========')
var count = 10;
console.log(count.toString(), typeof count.toString());

console.log('=========对象:object.toString()========')
var obj = {a: 123}
console.log(obj.toString(), typeof obj.toString());

console.log('=========正则:regExp.toString()========')
var reg = /^(.)*$/;
console.log(reg.toString(), typeof reg.toString())

console.log('=========字符串:string.toString()========')
var str = '123abc'
console.log(str.toString(), typeof str.toString());

console.log('=========symbol.toString()========')
var sym = Symbol('desc');
console.log(sym.toString(), typeof sym.toString())

前面也提到过,nullundefined值没有toString()。因此在对这两个值进行了toString()后,如果变量为null或者undefined的时候就会报错。

多数情况下,调用toString()方法不必传递参数。但是,在调用数值的number.toString()方法时,可以传递一个参数,输出数值的基数。默认情况下,number.toString()方法以十进制格式返回数值的字符串表示。而通过传递基数,number.to

剩余80%内容付费后可查看
* 请输入阅读码(忘记阅读码?

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/toString-vs-String-vs-valueOf.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部