1. /******************* */
    2. // Array.from ES2015 ES6
    3. //
    4. // 返回一个新的数组引用
    5. const arr = [1, 2, 3, 4];
    6. const newArr = Array.from(arr);
    7. // 如果参数是一个带有引用类型元素的数组。
    8. // 返回的新数组是一个浅拷贝
    9. const arr = [{ id: 1, age1 }]
    10. // 参数是一个字符串
    11. // 字符串是一个可迭代对象
    12. const str = '123';
    13. const newArr3 = Array.from(str);
    14. // 参数是一个Symbol 类型 - Array.from 不做处理 返回一个新的数组。
    15. const sm = Symbol('123');
    16. Array.from(sm);
    17. // 参数是一个数字 Array.from 不做处理 返回一个新数组。 因为他们不是可迭代对象 Symbol.iterator
    18. // 参数是一个bool Array.from 不做处理 返回一个新数组。 因为他们不是可迭代对象 Symbol.iterator
    19. // 参数是一个RegExp Array.from 不做处理 返回一个新的数组。 因为他们不是可迭代对象 Symbol.iterator
    20. // 参数是null / undefined 也不是可迭代对象。直接报错
    21. // 参数是普通对象 Array.from 不做任何处理 返回一个新的数组.
    22. // 参数是一个类数组
    23. // 1.键名必须从0 开始数字顺序排序
    24. // 2.length 属性必须正确
    25. // 长度决定了新数组的长度.属性名决定了而填充该数组的位置.
    26. // 总结 Array.from 的第一个参数必须是可迭代对象 或者标准的类数组