1.es6 1.1 var声明变量和let声明变量的区别
1.1.1 var声明的变量会越域 let 不会 如在一个大括号中定义局部变量
在外部引用 var定义的变量不会报错而 let会报错
1.1.2 var可以声明多次,let只能声明一次
1.1.3 var会变量提升, 如提前使用 x没有定义,var不会报错 let 会报错
1.2 const声明常量 只读变量
1.3 解构表达式 数组解构: 如: let arr=[1,2,3] let a=arr[0] let b=arr[1] let c=arr[2] 使用数组解构表达式可以 const [a,b,c]=arr 对象解构: 如 person={ name:“jack”, age:“1” } 传统 const name=person.name
使用对象解构:
const{name :abc,age}=person
这个就是把name的值赋给abc
abc就是变量
1.4 字符串扩展 startsWith(str) 以 str开始 endsWith(str) 以str结束 includs(str) 包含str 1.5 字符串模版
let ss= <div><span></span></div> 1.6 字符串插入变量和表达式 let info =我是${name},今年${age+10}了${方法名()} 也可以调用方法
1.7 函数优化 1.7.1 设置默认值 function xx(a,b=默认值) 1.7.2 不定参数 function (…参数名) 1.7.3 箭头函数 一个参数 var 变量= 参数=> 方法体 多个参数 var 变量 =(参数1,参数2)=>{return 参数1+参数2}
调用:变量(参数1,参数2)
扩展:
箭头+解构
var person= ({name})=>console.log(name)
person(person)
他会解构获取person中的name属性
1.8 对象的优化 1.8.1 Object.keys(json串) 获取他的键 object.values(json串)) 获取他的值 Object.entries(json串) 获取他的全部
1.8.2
Object.assiggn("要合并的对象",被合并的对象)
1.8.3 声明对象简写
const age=10
const name= zansan
属性名和属性值的变量名是一样
可以这样写
const person ={age,name}
1.8.4 对象函数属性的简写
let person={
eat2:food=>console.log(对象.属性),
eat(){方法体}
}
箭头函数不能使用this
1.8.5 扩展运算符
1.拷贝对象(深拷贝)
let x={...person} 把person里面的值都给x
2.合并对象
let age={age:1}
let name={name:2}
写法
person={...age,...name}
相同变量会取最新的
1.9 map和reduce map 接收一个函数 将原数组的所有元素用这个函数处理后 放入数组返回 let arr=[1,2,2,3,3] arr=arr.map(item)=>{return item*2}
arr=arr.map(item=>item*2)
reduce为数组中的每个元素依次执行回调函数,不包括数组被删除或者从未被赋值的元素
1.previousValue:上一次调用回调的返回值,或者是提供初始值
2.currentValue:数组中当前被处理的元素
3.index 当前元素的索引
4.array 调用reduce的数组
arr.reduce((1,2,3,4)=>{
1是处理之后
2.是处理
})
2.0 异步编排 persomise 解决嵌套
persomise 可以封装异步操作
这两个参数 是一个是成功,一个是失败
let p=new Promies((resolve,reject)=>{
$.ajax({
url:"",
type:data""
,
success:function(data){
resolve(data)
},
error:function (err)
reject(err)
})
if(true){
resolve(data) 成功的话就往下传
}else{
reject(error)
}
})
p.then((obj)=>{
成功
retunr new promise((resolve,reject)=>{
$.ajax({
url:"",
type:data""
,
success:function(data){
resolve (data)
},
error:function (err)
})
})
}
).catch((error)=>{
失败
}).then(与之前一样)
2.1 模块化 什么是模块化? 模块化就是把代码进行拆分 export const 变量 导出
export {参数1,参数2} 相当于批量导出 参数1,参数2
export 不仅可以导出对象,也可以导出变量
import xx from "y" 导入
从y 文件导入 xx
xx不能乱写要和文件一样
如果要自己写的话
export default{
xxx(){}
} 没有起名字的话导入随便写
import {1,2} from xxx 批量导入
|