原始值:为何‘5‘、666等原始值可以操作对象才有的属性和方法?

原始值:为何'5'、666等原始值可以操作对象才有的属性和方法?

在js里面,让我们运行一段有趣的代码:

console.log(5 === new Number(5)); //false

//对 5 进行操作
console.log(typeof (5).toString());//string

a = new Number();
console.log(Object.prototype.toString.call(a)); // [object Number]
console.log(Object.prototype.toString.call(5)); // [object Number]

一、ECMAScript规定的基本数据类型

原始值:

  • 指的是 JavaScript 中的基本数据类型值:

    • Number(数字):如 423.14
    • String(字符串):如 "hello"
    • Boolean(布尔):如 truefalse
    • null
    • undefined
    • Symbol(符号)
    • BigInt(大整数)

引用类型,借鉴java万物皆对象设计理念,Object:

  • Object引用类型包括

    • Function
    • Array
    • RegExp

原始值如1、'abc'、'3'等为什么可以访问其属性和方法,对其进行操作?

JS隐式操作:自动装箱

let num = 42; //42是原始值
let temp = new Number(num); // 临时包装对象,调用其属性和方法
console.log(temp.toString());
// 之后,临时对象被丢弃

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值