(function() {
// concat() 连接两个或更多的数组,并返回结果。
// let arr1 = [1, 2, 3, 4, 5];
// let arr2 = [5, 4, 3, 2, 1];
// let arr3 = arr1.concat(arr2);
// console.log('arr3', arr3);//[1, 2, 3, 4, 5,5, 4, 3, 2, 1]
// let arr1 = '1212';
// let arr2 = '665';
// let arr3 = arr1.concat(arr2);
// console.log('arr3', arr3);//1212665
//copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。(会改变原来的数组结构)
// var fruits = ["Banana", "Orange", "Apple", "Mango", "Mango1"];
// var fruits2 = fruits.copyWithin(2, 0);
// console.log(fruits, fruits2);
//fruits "Banana", "Orange", "Banana", "Orange", "Apple"
//fruits2 "Banana", "Orange", "Banana", "Orange", "Apple"
//splice() // 删除元素
// fruits2.splice(2, 1);
//fruits "Banana", "Orange", "Orange", "Apple"
// entries() 返回数组的可迭代对象。
// var fruits3 = ["Banana", "Orange", "Apple", "Mango"];
// let x = fruits3.entries();
// console.log('entries1', x.next().value); //0, "Banana"
// console.log('entries2', x.next().value); //1, "Orange"
// every() 检测数值元素的每个元素是否都符合条件。最终返回结果为boolean
// var arr = [1, 2, 3, 5];
// var arr2 = arr.every(function(item) {
// return item <= 5;
// })
// console.log('arr2', arr2);//true
// fill() 使用固定值填充数组
// var arr = new Array(3);
// arr.fill(0);
// console.log('arr', arr);//[0,0,0]
// filter() 检测数值元素,并返回符合条件所有元素的数组。
// var arr = [1, 2, 3, 5];
// var arr2 = arr.filter(function(item) {
// return item < 5;
// })
// console.log('arr', arr);//[1, 2, 3, 5]
// console.log('arr2', arr2);//[1, 2, 3]
//去重
// var arr = [1, 2, 3, 2, 3, 5];
// var arr2 = arr.filter(function(item, index, thisarr) {
// //thisarr.indexOf(item, 0) 获取item在原数组的位置,0表示从索引0开始检查数组
// //判断item在原始数组中第一次出现的位置与当前遍历到的索引位置是否一致,不一致则为重复
// return thisarr.indexOf(item, 0) === index;
// })
// console.log('arr', arr); [1, 2, 3, 2, 3, 5]
// console.log('arr2', arr2);[1, 2, 3, 5]
// let a = '';
// let a1 = 1;
// let a2 = {};
// let a3 = [];
// let a4 = true;
// let a5 = function() {};
// let a6 = undefined;
// let a7 = null;
// console.log('typeof a', typeof a) //string
// console.log('typeof a1', typeof a1) //number
// console.log('typeof a2', typeof a2) //object
// console.log('typeof a3', typeof a3) //object
// console.log('typeof a4', typeof a4) //boolean
// console.log('typeof a5', typeof a5) //function
// console.log('typeof a6', typeof a6) //undefined
// console.log('typeof a7', typeof a7); //object
//instanceof 只适合对象类型,不适合基本数据类型
// console.log('a instanceof String', a instanceof String); //false
// console.log('a1 instanceof Number', a1 instanceof Number); //false
// console.log('a2 instanceof Object', a2 instanceof Object); //true
// console.log('a3 instanceof Object', a3 instanceof Object); //true
// console.log('a3 instanceof Array', a3 instanceof Array); //true
// console.log('a4 instanceof Boolean', a4 instanceof Boolean); //false
// console.log('a5 instanceof Function', a5 instanceof Function); //true
// console.log('a6 instanceof undefined', a6 instanceof Object); //false
// console.log('a7 instanceof Object', a7 instanceof Object); //false
//判断是否是数组使用 constructor 比较准确
// console.log('a.constructor == String', a.constructor == String); //true
// console.log('a1.constructor == Number', a1.constructor == Number); //true
// console.log('a2.constructor == Object', a2.constructor == Object); //true
// console.log('a3.constructor == Array', a3.constructor == Array); //true
// console.log('a3.constructor == Object', a3.constructor == Object); //false
// console.log('a4.constructor == Boolean', a4.constructor == Boolean); //true
// console.log('a5.constructor == Function', a5.constructor == Function); //true
// console.log('a6.constructor == undefined', a6.constructor == Object); //a6.constructor 报错没有constructor属性
// console.log('a7.constructor == Object', a7.constructor == Object); //a7.constructor 报错没有constructor属性
//Object.prototype.toString.call 判断所有类型都比较准确
// console.log('a is', Object.prototype.toString.call(a)); //[object String]
// console.log('a1 is', Object.prototype.toString.call(a1)); //[object Number]
// console.log('a2 is', Object.prototype.toString.call(a2)); //[object Object]
// console.log('a3 is', Object.prototype.toString.call(a3)); //[object Array]
// console.log('a4 is', Object.prototype.toString.call(a4)); //[object Boolean]
// console.log('a5 is', Object.prototype.toString.call(a5)); //[object Function]
// console.log('a6 is', Object.prototype.toString.call(a6)); //[object Undefined]
// console.log('a7 is', Object.prototype.toString.call(a7)); //[object Null]
//find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
// let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
// var arr2 = arr.find(function(item, index, oldarr) {
// return item > 3;
// })
// console.log('arr2', arr2); //4
// //findIndex() 方法返回通过测试(函数内判断)的数组的第一个元素的索引值。
// var arr2 = arr.findIndex(function(item, index, oldarr) {
// return item > 3;
// })
// console.log('arr2', arr2); //3
// arr.forEach(function(item, index) {
// console.log('item', item);
// })
//from() 通过给定的对象中创建一个数组。
// var arr = Array.from({
// name: 1,
// name2: 2
// });
// console.log('arr', arr);//[]
// var arr = Array.from('adsadasdsa');
// console.log('arr', arr);//["a", "d", "s", "a", "d", "a", "s", "d", "s", "a"]
// var arr = Array.from(123456);
// console.log('arr', arr);//
//includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。
// var arr = ['dasda','fa21','1551'];
// console.log(arr.includes('dasda'));//true
// console.log(arr.includes('dasda1'));//false
// //第二个参数表示从哪个索引开始查询,负值:arr.length + 负值
// console.log(arr.includes('1551',1));//true
// console.log(arr.includes('dasda',1));//false
// console.log(arr.includes('dasda',-1));//false
// console.log(arr.includes('1551',-1));//true
// join() 方法用于把数组中的所有元素转换一个字符串。
// var arr = ['dasda','fa21','1551'];
// console.log(arr.join()); // dasda,fa21,1551
// console.log(arr.join('')); // dasdafa211551
// console.log(arr.join('-')); // dasda-fa21-1551
//keys() 方法用于从数组创建一个包含数组键的可迭代对象。
// var arr = ['dasda','fa21','1551'];
// var arrkeys = arr.keys();
// console.log(arrkeys.next().value); // 0
// console.log(arrkeys.next().value); // 1
// console.log(arrkeys.next().value); // 2
// console.log(arrkeys.next().value); // undefined
// lastIndexOf() 方法可返回一个指定的元素在数组中最后出现的位置,从该字符串的后面向前查找。
// var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
// var a = fruits.lastIndexOf("Apple");//6
// //第二个参数表示从0到4内从尾到头查找
// var fruits=["Banana","Orange","Apple","Mango","Banana","Orange","Apple"];
// console.log(fruits.lastIndexOf("Apple",4));//2
// console.log(fruits.lastIndexOf("Apple",2));//2
// console.log(fruits.lastIndexOf("Apple",1));//-1
// //第二个参数表示从0到6内从尾到头查找
// console.log(fruits.lastIndexOf("Apple",6));//6
})()