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));
感谢大家的阅读,刚刚学习的知识,没有掌握多少,如有不对的地方,可以私信我,感谢大家!