栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript中的valueOf()与toString()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript中的valueOf()与toString()

(“ x =” + x)给出“ x = value”而不是“x=tostring”的原因如下。当评估“+”时,javascript首先收集操作数的原始值,然后根据每个原始类型确定是否应应用加法或串联。

所以,这就是您的想法

a + b:    pa = ToPrimitive(a)    if(pa is string)       return concat(pa, ToString(b))    else       return add(pa, Tonumber(b))

这就是实际发生的情况

a + b:    pa = ToPrimitive(a)    pb = ToPrimitive(b)*    if(pa is string || pb is string)       return concat(ToString(pa), ToString(pb))    else       return add(Tonumber(pa), Tonumber(pb))

也就是说,toString应用于valueOf的结果,而不是原始对象。


*在字符串上下文中调用时,ToPrimitive确实会调用toString,但这不是这种情况,因为’+’不会强制​​执行任何类型上下文。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464754.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号