Q1主动回忆难度 2
1/8
JavaScript 核心 · 类型与拷贝
记忆强度
类型判断的边界、深浅拷贝的坑,以及数组方法里那些改不改原数组的细节。
JavaScript 核心 · 类型与拷贝
8.0 时,Array.of 与 Array 分别产生什么结果;传入多个参数时又有何区别?Array.of(8.0) 返回 [8],Array(8.0) 返回长度为 8 的空数组;多个参数时结果一致。
箭头函数没有自己的 arguments;可用 (...args) => args 收集实参,并直接得到数组。
浅拷贝复制基本类型的值,却只复制引用类型的地址,因此嵌套对象仍共享堆内存。
该方法会丢失多类属性,并错误转换 Date、RegExp 与非有限数,且无法处理循环引用。
它用完整键和属性描述符创建同原型副本,并在递归前用 WeakMap 登记原对象与副本的映射。
原始类型在栈中直接存值并复制值,引用类型在堆中存实体、栈中存地址并复制地址。
b.age 为 30,a.age 为 24;属性修改作用于原对象,重新赋值只改变局部变量 o 的地址。
应使用 Object.prototype.toString.call(value),它能返回统一的 [object Xxx] 类型字符串。