标签:valueOf 对象 javaScript 手册 调用 toString 数组 push 通关
前端通关手册
Javascript
ES3
a = [],a.push(...[1, 2, 3]) ,a = ?
面试高频指数:★ ☆ ☆ ☆ ☆
a = [1, 2, 3],考核点如下:
[].push:调用数组 push 方法
apply:
第一参数:指定 push 执行时的 this,即正在调用 push 的对象为数组 a
第二参数:传入数组或类数组对象作为参数数组,展开作为 push 的参数列表
push的语法:支持将一个或多个元素添加到数组末尾
arr.push(element1, ..., elementN)
综上,题目等同于
a.push(1, 2, 3) // [1, 2, 3]
a = ?, a1 && a2 && a==3 成立
面试高频指数:★ ★ ★ ★ ☆
== 会触发隐式转换,=== 不会
对象转字符串
先尝试调用对象的 toString()
对象无 toString()或 toString 返回非原始值,调用 valueOf() 方法
将该值转为字符串,并返回字符串结果
否则,抛出类型错误
对象转数字
先尝试调用对象的 valueOf(),将返回原始值转为数字
对象无 valueOf() 或 valueOf 返回不是原始值,调用 toString() 方法,将返回原始值转为数字
否则,抛出类型错误
对象转布尔值
True
代码
const a = {
count: 0,
valueOf() {
return ++this.count
}
}
数组
隐式转换会调用数组的 join 方法,改写此方法
const a = [1, 2, 3]
a.join = a.shift
标签:valueOf,对象,javaScript,手册,调用,toString,数组,push,通关 来源: https://www.cnblogs.com/Gurad/p/15832642.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。