JavaScript 基础系列之分析 {} 和 [] 的 valueOf() 和 toString() 的结果
yuanyuanbyte opened this issue · 0 comments
yuanyuanbyte commented
本系列的主题是 JavaScript 基础,每期讲解一个技术要点。如果你还不了解各系列内容,文末点击查看全部文章,点我跳转到文末。
如果觉得本系列不错,欢迎 Star,你的支持是我创作分享的最大动力。
{} 和 [] 的 valueOf() 和 toString() 的结果是什么?
简单介绍一下 valueOf
和 toString
valueOf()
valueOf()
方法返回指定对象的原始值。
JavaScript调用valueOf
方法将对象转换为原始值。你很少需要自己调用valueOf方法;当遇到要预期的原始值的对象时,JavaScript会自动调用它。
toString()
toString()
方法返回一个表示该对象的字符串。
每个对象都有一个 toString()
方法,当该对象被表示为一个文本值时,或者一个对象以预期的字符串方式引用时自动调用。默认情况下,toString()
方法被每个 Object
对象继承。
可以使用 toString()
检测对象类型:
var a = Object.prototype.toString;
console.log(a.call("aaa"));
console.log(a.call(1));
console.log(a.call(true));
console.log(a.call(null));
console.log(a.call(undefined));
console.log(a.call([]));
console.log(a.call(function() {}));
console.log(a.call({}));
{}
和[]
的 valueOf()
和 toString()
的结果是什么?
注意:可以在谷歌浏览器里直接通过括号()
,包括值的方式来调用方法
([]).valueOf()
([]).toString()
({}).valueOf()
({}).toString()
或者下面的写法 (有点繁琐)
let emptyObj = {};
console.log('emptyObj.valueOf() :>> ', emptyObj.valueOf()); // {}
console.log('emptyObj.toString() :>> ', emptyObj.toString()); // [object Object]
let emptyArr = [];
console.log('emptyArr.valueOf() :>> ', emptyArr.valueOf()); // []
console.log('emptyArr.toString() :>> ', emptyArr.toString()); // ""
博文系列目录
- JavaScript 深入系列
- JavaScript 专题系列
- JavaScript 基础系列
- 网络系列
- 浏览器系列
- Webpack 系列
- Vue 系列
- 性能优化与网络安全系列
- HTML 应知应会系列
- CSS 应知应会系列
交流
各系列文章汇总:https://github.com/yuanyuanbyte/Blog
我是圆圆,一名深耕于前端开发的攻城狮。