专业编程基础技术教程

网站首页 > 基础教程 正文

es6

ccvgpt 2024-12-03 10:59:56 基础教程 6 ℃

数组去重

1. new Set

var arr = [1,2,2,3,4,4,5];
console.log(new Set(arr));// Set(5) {1,2,3,4,5}
console.log(Array.from(new Set(arr)));// [1,2,3,4,5]
console.log([...new Set(arr)]);// [1,2,3,4,5]

2. indexOf

var arr = [1,2,2,3,4,4,5];
var newarr = [];
for(var i=0;i<arr.length;i++){
  if(newarr.indexOf(arr[i]) == -1){
 	 newarr.push(arr[i])
  }
}

3. sort

var arr = [1,2,2,3,4,4,5];
arr = arr.sort();
var newarr = [];
for(var i=0;i<arr.length;i++){
  if(arr[i] !== arr[i-1]){
 	 newarr.push(arr[i])
  }
}
console.log(newarr);// [1,2,3,4,5]

闭包

包:内部函数可以访问到外部函数的变量

变量会驻留在内存中,造成内存损耗问题,会存在内存泄漏(把闭包的函数设置为null)

es6


function fn(){
	var a=10;
  return function(){
  	console.log(a);// 10
  }
}
FN()();
for(var i=0;i<3;i++){
  (function(i){
	  console.log(i)
  })(i)
}
// 0
// 1
// 2

判断变量是不是数组

1. isArray

var str = 'a'
var data = [1,2];
console.log(Array.isArray(str));// false
console.log(Array.isArray(data));// true

2. instanceof

var str = 'a'
var data = [1,2];
console.log(str instanceof Array);// false
console.log(data instanceof Array);// true
// instanceof没isArray严谨
Array.isArray({});// false
data instanceof Object;// true

3. prototype

var str = 'a'
var data = [1,2];
console.log(Object.prototype.toString.call(str).indexOf('Array') > -1);// false
console.log(Object.prototype.toString.call(data).indexOf('Array') > -1);// true

4. isPrototypeOf

var str = 'a'
var data = [1,2];
console.log(Array.prototype.isPrototypeOf(str));// false
console.log(Array.prototype.isPrototypeOf(data));// true

5.constructor

var str = 'a'
var data = [1,2];
console.log(str.constructor.toString().indexOf('Array') > -1);// false
console.log(data.constructor.toString().indexOf('Array') > -1);// false
 

Tags:

最近发表
标签列表