class类,Array.of()创建数组以及数组扁平化

1.class类:

1.class 的本质是 function。

2.不可重复声明。

3.类定义不会被提升,这意味着,必须在访问前对类进行定义,否则就会报错。

4.类中方法不需要 function 关键字。

5.方法间不能加分号。

命名类let Example = class Example{}
匿名类let Examples = class{}
// class Example{}
		// let Example = class Example{}
		// class Example{
		// 	constructor() {
		// 	    console.log("你要调用我哦");
		// 	}
		// 	// 静态成员
		// 	static a = 2;
		// 	static b = 80;
		// 	static sing(){
		// 		console.log(22222222);
		// 	};
		// 	sum(){
		// 		console.log(11111111);
		// 	}
		// }
		// console.log(Example.a);
		// console.log(Example.b)
		// Example.sing();
		// 触发class类方法,实例化一个新的class类
		// 公共属性
		// Example.prototype.id = 99;
		// var exa = new Example();
		// console.log(exa.id);
		// console.log(exa.__proto__.id);
		// exa.__proto__.sex = "男";
		// console.log(Example.prototype.sex);
		// Object.assign(Example.prototype,{
		// 	age:99
		// })
		// console.log(exa.__proto__.age);
		// console.log(exa.age);
		// class Example {
		//     constructor(a, b) {
		//         this.a = a;
		//         this.b = b;
		//     }
		// 	static aa = this.a;
		//     sum() {
		//         return this.a + this.b;
		//     }
		// }
		// let exam1 = new Example(2, 1);
		// console.log(exam1.num);
		// console.log(exam1);
		// console.log(exam1.sum());
		// let exam2 = new Example(3, 1);
		// console.log(exam2);
		// console.log(exam2.sum());
		// 返回值为对象
		class Test {
		    constructor(){}
		}
		class Example{
			constructor() {
			    return new Test();
			}
		}
		console.log(new Test() instanceof Object);
		console.log(new Test() instanceof Test);
		console.log(new Example() instanceof Example);

2.includes()数组

includes()数组是否包含指定值,查找到返回true否则false

// var a = [1, 2, 3,NaN].includes(NaN);
		// console.log(a);
		// flat()嵌套数组转一维数组,Infinity	
		// var a = [1,[2,[3,4,5],6,7],8,9].flat(Infinity);
		// console.log(a);

flatMap()先对数组中每个元素进行了的处理

参数1:遍历函数,该遍历函数可接受3个参数:当前元素、当前元素索引、原数组

参数2:指定遍历函数中 this 的指向

// let obj = {
		// 	do(n){
		// 		return n*10;
		// 	}
		// }
		// var a = [1,[2,[3,4,5],6,7],8,9].flat(Infinity).flatMap(function(item){
		// 	return this.do(item);
		// },obj);
		// console.log(a);
		
		// let buffer = new ArrayBuffer(10);
		// console.log(buffer);
		// // console.log(buffer.byteLength);
		// var dataView = new DataView(buffer);
		// dataView.setInt32(0,9);
		// console.log(dataView.getInt8(3));
		// console.log(buffer);
		// console.log(dataView);
		// let view = new Int16Array([7,10]);
		// console.log(view);

3.Array.of()创建数组


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		
	</body>
	<script type="text/javascript">
		// Array.from(类数组,map函数,this指向)类数组转成数组
		// var arr = [];
		// var arr1 = new Array(11,22,33,"aa");
		// console.log(arr1);
		// console.log(Array.of(1, 2, 3, 4,"abc",{name:1},function a(){}));
		// console.log(Array.from([1, 2]))
		// let obj = {
		// 	do:(n)=>{
		// 		return n*10;
		// 	}
		// }
		// console.log(obj.do(3))
		// console.log(Array.from([5,6],function(item){
		// 	return this.do(item);
		// },obj))
		// console.log(Array.from([1, 2],(item)=>{
		// 	return item*2
		// }))
		// console.log(Array.from([2, 4],(item)=>item*2))
		
		// var map = new Map([[1,2]]);
		// map.set("name","zs");
		// console.log(map);
		// var a = map.has(2);
		// console.log(a);
		// var a = Array.from(map);
		// console.log(a);
		
		// var set = new Set([1,2,3]);
		// set.add(11);
		// var a = set.has(5);
		// console.log(a);
		// console.log(set);
		// var a = Array.from(set);
		// console.log(a);
		
		// var str = "hello";
		// var a = Array.from(str);
		// console.log(a);
		// var a = new Set(str);
		// console.log(a);
		// console.log([...str]);
		// find()查找数组中符合条件的元素,若有多个符合条件的元素,则返回第一个元素
		// var a = [1,2,3,4,5].find((item)=>{
		// 	return item>2
		// })
		// console.log(a);
		// findIndex()
		// 查找数组中符合条件的元素索引,
		// 若有多个符合条件的元素,则返回第一个元素索引。
		// 没查找到返回-1
		// let obj = {
		// 	age:10
		// }
		// var a = [1,2,3,4,5].findIndex(function(item){
		// 	return this.age==item;
		// },obj)
		// console.log(a);
		// fill()将一定范围索引的数组元素内容填充为单个指定的值
		// 参数1:用来填充的值
		// 参数2:被填充的起始索引(包含)
		// 参数3(可选):被填充的结束索引,默认为数组末尾(不包含),默认到最后
		// console.log([1, 2, 3, 4].fill(0,1,2));
		// copyWithin()将一定范围索引的数组元素修改为此数组另一指定范围索引的元素。
		// 参数1:被修改的起始索引
		// 参数2:被用来覆盖的数据的起始索引
		// 参数3(可选):被用来覆盖的数据的结束索引,默认为数组末尾
		// console.log([1,2,3,4,5,6,7,8,9].copyWithin(-1,4,5));
		
		// for(var [key,value] of [11,22,33].entries()){
		// 	console.log(key,value);
		// }
		// for(var key of [11,22,33].keys()){
		// 	console.log(key);
		// }
		// for(var value of [11,22,33].values()){
		// 	console.log(value);
		// }
	</script>
</html>

4.数组扁平化

数组扁平化--将多维数组变为一维数组

// var arr = [1, 2, 3, [4, 3, [2, 7], 2], 5, [5, 9, 10], 7];
		// function func(user){
		// 	let arr1 = [];
		// 	for(var i=0;i<user.length;i++){
		// 		if(Array.isArray(user[i])==false){
		// 			arr1.push(user[i]);
		// 		}else{
		// 			arr1 = arr1.concat(func(user[i]))
		// 		}
		// 	}
		// 	arr = arr1;
		// 	return arr;
		// }
		// function func(user){
		// 	let arr1 = [];
		// 	user.forEach((item)=>{
		// 		Array.isArray(item)==false?arr1.push(item):arr1 = arr1.concat(func(item))
		// 	})
		// 	arr = arr1;
		// 	return arr;
		// }
		// func(arr);
		// console.log(arr);
		
		function add(x, y) {
			return x + y
		}
		// 函数柯里化
		// function curryingAdd(x) {
		// 	return function (y) {
		// 		return x + y
		// 	}
		// }
		// function binds() {
		// 	return function (x,y) {
		// 		return x + y
		// 	}
		// }
		// console.log(add(1,3));
		// console.log(curryingAdd(1)(5));
		// console.log(binds()(2,4));

感谢大家的阅读,刚刚学习的知识,没有掌握多少,如有不对的地方,可以私信我,感谢大家!  

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值