自动装箱是类型胁迫的一种形式吗?

类型胁迫是指操作符对操作数进行隐式类型转换。

IIUC在评估 'a'.length, a 暂时被包裹起来,或者说是盒子,在一个实例中。String严格来说,它是(?)与字符串文字的不同类型。

这里涉及到类型强制吗?

console.log(typeof new String('') === typeof '') // false

解决方案:

自动装箱是类型强制的一种形式吗?

你对 auto-boxingtype coercion 都不清楚。据我所知 auto-boxing 并不是一个Javascript的概念。

在MDN上 type coercion 被定义为”自动或隐性地将数值从一种数据类型转换为另一种数据类型。“.

通常这个词只用于除属性访问以外的操作符。但是当你访问一个javascript基元类型的属性时,除了访问 objectundefined 然后就会 包裹 使用该基元类型的适当包装器。而这个操作包括 type coercion.

在非严格模式下,当你实际调用函数产生一个叫做 this 的对象类型,而在严格模式下 this 属于原始类型。

是否 console.log(typeof new String('') === typeof '') 牵涉到类型的胁迫?

不,不涉及胁迫。

new String('') 产生一个字符串对象

typeof aStringObject 产生一个字符串基元 "object".

typeof '' 产生字符串基元 "string".

"object" === "string" 产生布尔基元 false.

console.log 只能输出字符串,但Javascript函数参数没有类型。在 实施console.log(false) 可能使用 type coercion 或明确 类型转换 来转换布尔值 false 到字符串值 "false" 虽然。

给TA打赏
共{{data.count}}人
人已打赏
未分类

当指定的主机和HTTP重定向被启用时,ISTIO失败。

2022-9-8 2:34:20

未分类

在Alamofire DataRequest上设置timeoutInterval。

2022-9-8 2:34:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索