Mis*_*ist 78 javascript number-literal spread-syntax
我刚刚{....0}
在朋友的代码中找到了.在控制台返回中评估它{}
(空对象).
这是为什么?JavaScript中4个点的含义是什么?
Nik*_*xDa 87
四个点实际上没有任何意义....
是扩散运算符,.0
是简称0.0
.
因此,将0(或任何数字)传播到对象中会产生空对象{}
.
Jon*_*lms 55
对象文字中的三个点是展开属性,例如:
const a = { b: 1, c: 1 };
const d = { ...a, e: 1 }; // { b: 1, c: 1, e: 1 }
Run Code Online (Sandbox Code Playgroud)
最后一个带0的点是一个数字文字.0
是相同的0.0
.因此:
{ ...(0.0) }
Run Code Online (Sandbox Code Playgroud)
将数字对象的所有属性传播到对象中,但是由于数字没有任何(自己的)属性,因此您将获得一个空对象.
简单来说{...}
,javascript中的spread运算符将一个对象/数组扩展为另一个.
因此,当babelifier尝试用另一个扩展时,它必须确定它是否正在尝试扩展数组或对象.
在这种情况下array
,它迭代元素.
在这种情况下object
,它迭代键.
在这种情况下,babelyfier试图number
通过检查own property call
缺少的Object 来提取密钥,number
因此它返回空Object.
归档时间: |
|
查看次数: |
8988 次 |
最近记录: |