1、let
1、变量不允许被重复定义 2、没有预解析没有变量提升 3、保留块级作用域中i的 4、声明的叫变量
let num = 100 ;
2、const
1、不允许重复声明变量 2、没有预解析没有变量提升 3、保留块级作用域中i的 4、声明的叫常量
const num = 100
3、` `模板字符串
1、可以换行书写 2、要写动态的数据 直接放在 ${} 中间
const index = 1
const str = `<div>
<span> ${ index} </span>
</div>`
4、解构赋值
1、对象{}数组[]解构赋值当中 = 左右的数据类型一定要是同一种数据类型2、只能取对象里面相同名字的属性
let obj = {
name: "张三" ,
age: 31 ,
id: 9527 ,
}
let arr = [ 1 , 2 , 3 ]
let [ n1, n2, n3] = arr
let { name, age, id} = obj
console. log ( name)
console. log ( n1)
5、...展开运算符
1、将对象或者数组中的数据展开放到另外的数组或对象
let arr = [ 1 , 2 , 3 , 4 , 5 ]
let arr2 = [ 6 , 7 , 8 , ... arr]
console. log ( arr2)
let obj = {
id: 9527 ,
name: "张三" ,
age: 15
}
let obj2 = {
... obj,
phone: 1999999
}
console. log ( obj2)
6、JSON格式字符串
1、JSON.stringify()将对象或数组转化为json格式 2、JSON.parse()将JSON 格式的字符串 转为对象或者数组
let obj = { uname: "Jack" , pwd: 123456 }
let str = JSON . stringify ( obj)
let str1 = '{"code":200,"message":"用户已经存在"}'
let obj1 = JSON . parse ( str1)
7、includes()
1、某个数组中是否包含给定的值 2、第一个参数表示查找的数 默认从0开始3、第二个表示开始查询的位置如果为负数表示倒着数的位置
let arr= [ 1 , 2 , 3 ]
arr. includes ( 2 )
arr. includes ( 3 , 3 ) ;
arr. includes ( 3 , - 1 ) ;
8、箭头函数
1、箭头函数 把 function 省略 然后添加了一个 => 2、如果只有一个参数 () 可以省略 如果是两个及以上绝对不能省略3、如果箭头函数内只有一句代码并且是 返回值 那么 {} 就可以省略 return 也可以省略 4、箭头函数的this指向和外部的保持一致
let fun = a => 123
console. log ( fun ( ) )
9、Promise承诺
1、把本来异步的代码写成同步的形式 2、链式调用的原理,每调用一个方法这个方法都会返回一个promise
var pro = new Promise ( ( resolve, reject) => {
setTimeout ( ( ) => {
const num = prompt ( )
if ( num > 10 ) {
resolve ( )
} else {
reject ( )
}
} , 3000 )
} )
pro. then ( ( ) => {
console. log ( '承诺兑现,你真棒' )
} ) . catch ( ( ) => {
console. log ( '承诺失败,你真菜' )
} ) . finally ( ( ) => {
console. log ( '不管承诺成功与否我都会出来' )
} )