特别声明:如果您喜欢小站的内容,可以点击申请会员进行全站阅读。如果您对付费阅读有任何建议或想法,欢迎发送邮件至: airenliao@gmail.com!或添加QQ:874472854(^_^)
在《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中除了null
和undefined
之外的任何数据类型都可以通过.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())
前面也提到过,null
和undefined
值没有toString()
。因此在对这两个值进行了toString()
后,如果变量为null
或者undefined
的时候就会报错。
多数情况下,调用toString()
方法不必传递参数。但是,在调用数值的number.toString()
方法时,可以传递一个参数,输出数值的基数。默认情况下,number.toString()
方法以十进制格式返回数值的字符串表示。而通过传递基数,number.to
如需转载,烦请注明出处:https://www.w3cplus.com/javascript/toString-vs-String-vs-valueOf.html
如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!