js中Number数字类型没有length属性

Number类型是没有length属性的,可以参考MDN文档Number类型的描述

延伸#

问题:

我在浏览器控制台里直接输入78.length回车是报错的,但是,

Copy
var someValue = 78; var strLength = someValue.length; console.log(strLength);

这样不报错,只输出undefined,为什么?

解答:

万物皆对象,Number类型继承于Number.prototypeNumber.prototype继承于Object.prototype,所以获取number数值的length属性,会去Number.prototypeObject.prototype上找,找不到返回undefined

那么为什么78.length会报错呢?这就要讲到.的机制,在js中,.紧跟在整数后面会被理解为小数点,所以78.length报错,那么78.0.length就不会报错,78..length也不会报错,(78).length也不会报错,把数值保存在变量中访问属性也不会报错(这个和上一个加括号不抱错的原理一样)

posted @   王永杰的网络日志  阅读(357)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示
CONTENTS