1. JavaScript 有哪些内置对象

    (1)值属性 undefined、null、Infinity、-Infinity、NaN
    (2)函数属性 eval parseInt parseFloat
    (3)基本对象:Ojbect 、Error、Symbol、Boolean、Function
    (4)数字和日期对象:Number、Date、Math、BigInt
    (5)字符串:String、RegExp
    (6)可索引的集合对象,比如 Array 和 ArrayLike,Buffer、ArrayBuffer
    (7)使用键的集合对象,Map、Set、WeakMap、WeakSet
    (8)矢量集合,SIMD
    (9)结构化:JSON.parse、JSON.stringify
    (10)控制抽象对象 Promise、Generator
    (11)反射:Reflect、Proxy
    (12)国际化:Intl,Intl.Collator
    (13)WebAssembly
    (14)其他,例如 arguments、callee 等

    1. JavaScript 脚本在浏览器中延迟加载的方式有哪些?
    • defer,有序,异步加载,无阻断
    • async,无序,异步加载,运行阻断
    • setTimeout,设置定时器加载
    • JSONP 的方式,动态创建
    • JS 放在文档底部
    1. JavaScript 类数组对象的定义

    (1)Array.prototype.slice(aryLike)
    (2)Array.prototype.splice(aryLike, 0)
    (3)Array.from
    (4)Array.prototype.concat
    (5)[…aryLike]

    1. 数组的原生方法?
    • 转换:toString\toLocaleString\join
    • 普通操作:pop、push、shift、unshift、slice、splice
    • 连接:concat
    • 复制:copyWith mdn ```typescript // copyWith 浅复制数组的一部分到同一数组的另一个位置,并返回它,不会改变原数组的长度 // copyWith(target, start?, end?) // 0 为基底的索引,复制序列到该位置。如果是负数,target 将从末尾开始计算。 // 如果 target 大于等于 arr.length,将不会发生拷贝。如果 target 在 start 之后,复制的序列将被修改以符合 arr.length。 // start 默认为 0,开始复制元素的起始位置。如果是负数,start 将从末尾开始计算。 // 如果 start 被忽略,copyWithin 将会从0开始复制。 // end 默认为 arr.length,开始复制元素的结束位置。copyWithin 将会拷贝到该位置, // 但不包括 end 这个位置的元素。如果是负数, end 将从末尾开始计算。如果 end 被忽略,copyWithin 方法将会一直复制至数组结尾(默认为 arr.length) const array1 = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’];

    // copy to index 0 the element at index 3 console.log(array1.copyWithin(0, 3, 4)); // expected output: Array [“d”, “b”, “c”, “d”, “e”]

    // copy to index 1 all elements from index 3 to the end console.log(array1.copyWithin(1, 3)); // expected output: Array [“d”, “d”, “e”, “d”, “e”]

    ```

    • 反转:reverse
    • 排序:sort(原数组影响)
    • 拍平:flat、flatMap
    • 遍历:forEach、map、filter
    • 归并:reduce、reduceRight
    • 寻找:indexOf、includes、lastIndexOf、findIndex、find、some、every、at、findLast、findLastIndex
    • 填充:fill
    • 对象型:values、keys、entries