变量声明
let 1.局部变量,只能在局部调用 2.不能重复声明 3.不会提升变量 console.log(a); let a; const 1.声明一个常量 2.声明必须赋值 3.不能被修改 4.变量名建议大写,如: const PI = 3.14
变量类型
数据类型 1.数字: number 2.字符串: String 3.布尔类型: true 和 false 4.未定义: undefined 引用类型 1.数组: array 2.对象: object 3.空: null 4.函数 : function 5.集合: Set 6.键值对: Map
结构
数组
1默认 [a,b] = [100,900] 2交互变量 [a,b] = [b,a] 3.忽略 [a,b] = [1,3,5] 4.剩余值 [a,…rest] = [4,6,8,10] 5.默认值 [a,b=25] = [8] 6.复制(浅拷贝) var arr = [1,3,5] var arr2 = […arr]
对象
顺序结构: var str = {name:‘苏苏未苏苏’,age:18,sex:‘男’} var {name,age}=str 剩余值: {name,…rest} = obj 默认值: {name = ‘哈喽’} = obj 复制: let obj2 = {…obj}
字符串
let [a,b,c,d] = “郑州奇酷” a 郑
数组高阶方法
filter 过滤 返回一个新数组 如果返回true,当前元素被保留, 否则被过滤 forEach 遍历 遍历数组 map 映射 返回和原数据一一对应的新数组 reduce 累计 a,b两个参数,a是上一次返回的结果 every 判断条件,若都满足条件返回true,否者返回false some 判断条件,若其中之一满足 条件,返回true,否则返回false 重复使用repeat
箭头函数
参数 => 函数体 =>前 函数的参数 =>后 函数的执行语句 var arr1 = [‘我’,‘爱’,‘J’,‘S’]; arr1.forEach(item=>console.log(item)); 如果有多个参数,用()包起来 var arr = [1,2,3,4]; var ret = arr.reduce((a,b)=>a*2+b); console.log(ret); 函数体只有一句,执行的结果就是返回值 多条语句用{}包裹,return返回 如果return对象: return({}) 箭头函数的this指向上一层作用域中的 this对象
set
new Set([])去重 size 长度 add() 添加 delete() 删除 clear() 清空 for of 变量 has() 检测是否含有 特点,不重复 特点: 1.有序 2.key可以是任意值
map
特点: 1.有序 2.key可以是任意值 new Map([k,v],[]) size 长度 set(k,v) 设置 get (k) 获取 has() 检测是否含有 clear() 清除 for of 遍历
apply
执行函数,对象冒充,参数数组 function add(x,y){ console.log(this,x+y) } add.apply({name:“mumu”},[3,7]) {name:“mumu”},10
call
执行函数,对象冒充,参数1个 add.apply({name:“mumu”},3,7) {name:“mumu”,10}
bind
创建函数,对象冒充,参数默认值 var nadd = add.bind({name:“zql”},5) nadd(10) 输出结果:{name:“zql”},15
类
定义 class Cat{ constructor(){} } 初始化类 new Cat() 继承 class Cat extends Animal{} 方法 brak(){} 属性 this.name = “西” 访问控制 set Age(val){} get Age(){} 调用父类构造函数 super() 静态方法 static sayLog(){} Cat.sayLog() 静态属性 static num = 0; Cat.num