每天认识一个js的原生属性和方法

208 阅读1分钟
  1. Array.from() 方法从一个类似数组或者可迭代的对象中创建一个新的,浅拷贝的数组实例。
console.log(Array.from('foo'));
// expected output: Array ["f", "o", "o"]

console.log(Array.from([{name:1},{name:2}], x => x.name + 1));
// expected output: Array [2, 3]
  1. Array.isArray() 判断是否为数组
Array.isArray([])
// true
Array.isArray([Array.prototype])
// true
Array.isArray({foo: 123})
// false

开发中我经常使用instanceof来检测类型,如果是检测Array实例时 使用Array.isArray更加好,可以检测iframes

var iframe = document.createElement('iframe');
document.body.appendChild(iframe);
xArray = window.frames[window.frames.length-1].Array;
var arr = new xArray(1,2,3); // [1,2,3]
Array.isArray(arr);  // true
arr instanceof Array; // false

这里说到判断类型的话 还有一种Object.prototype.toString.call()可以用原型链的方式 如果是数组则为'[object Array]',typeof由于不能很精细的判断类型,我在开发中基本很少用到。 3. Array.prototype.concat() 合并多个数组,不会改变原数组

var array1 = ['1', '2', '3'];
var array2 = ['4', '5', '6'];
console.log(array1);
// ["1", "2", "3"]
console.log(array2);
// ["4", "5", "6"]
// 不改变原来数组
console.log(array1.concat(array2));
// expected output: Array ["a", "b", "c", "d", "e", "f"]

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。 最常见也是用的比较多的一个数组操作方法

var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr + "<br />")
document.write(arr.push("James") + "<br />")
document.write(arr)