为了账号安全,请及时绑定邮箱和手机立即绑定

一个简单的js问题

一个简单的js问题

呼唤远方 2019-02-19 16:21:50
打印的结果是而不是{name:'1222'}
查看完整描述

3 回答

?
慕勒3428872

TA贡献1848条经验 获得超6个赞

首先基本类型都是没有属性的,

像 var a = 10; var b = "abc";

你之所以可以访问 a.fixed方法, b.substr方法, 是因为JS引擎会把基本类型数据进行了一次包装, 比如 a 会包装 Number(a), b会包装成String(b), 这样就数字就能够使用fixed方法,字符串能够使用substr。

给数字和字符串添加属性是不会生效的, a.name ='this is your name' 其实是在给 Number(a)对象添加nane属性。
每次包装都会产生一个新的对象,新对象不存在name,因此访问a.name 返回 undefined。 console.log(a)就只是显示a的数值


查看完整回答
反对 回复 2019-02-19
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

因为typeof a === number

查看完整回答
反对 回复 2019-02-19
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

js是动态类型语言
所以类型会任意改变

所以 a 变成了 number类型

而不是object类型


查看完整回答
反对 回复 2019-02-19
  • 3 回答
  • 0 关注
  • 663 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号