let(没有变量提升)
1.块级作用域:保证变量一定在自己的范围里可以使用
2.暂时性死区:当内部变量和外部变量重名时,内部变量屏蔽外部变量
3.let修饰的变量,使用必须在定义在后
3.不能重复定义变量
const (和let很相似 ,区别在只读)
1.const只能读,不能改(声明后不能修改)
2.定义的时候只能初始化
this (函数体内的关键字,根据不同类型函数,作用不同)this是函数的内置对象
1.与事件连接,代表触发事件的元素
2.与普通函数(不是构造函数)连用,代表调用函数的对象本身
3.在与构造方法连用,代表new的对象
bind(改变匿名函数的this指向)
let box = document.querySelector("#box")
document.onclick = function(){
this.style.display="none"
}.bind(box)
字符串转对象
1.JSON.parse(str)
对象转字符串
1.JSON.stringift(odj)
for…in…和for…of…
1.for...in..下标枚举
2.for....of...内容枚举
新增字符串查找属性
1.str.includes(" ")//包含查询
2.str.startswith(" ")//前缀查询
3.str.endswith(" ")//后缀查询
箭头函数(匿名函数的一种方法)
let fn= function(){
console.log("哈哈")
}
fn()
let fn=()=>{
console.log("哈哈")
}
fn()
let fn=()=>console.log("哈哈")
console.log(fn())
let fn=(a,b)=>a+b
console.log(fn(2,3))
解构赋值
1.解析结构进行赋值:注意等号两边的格式要相同
2.可以让函数返回多个返回值
3.两个数的交换
let [x,y,x]=[1,2,3]
let {name,age}={"name":"lijien","age"=18}
let [x,y]=[1,2]
let [x,y]=[y,x]
ES6模板字符串
let str = "eheh"
box.innerHTML=`<li>${str}</li>`
set
1.没有下标,不能存储重复的元素
2.可以自动去重
let set = new Set([1,1,2,2,3,3])
for(let item of set){
console.log(item)
}
let set = new Set(arr)
arr=Array.from(set)
console.log(arr)
map:(映射,存储的全部都是键值对)
1.map.set(key,value)向集合中添加一个元素:key已存在是改,没有就是添加
2.get (key)根据键取值
3.delete(key)删除集合中的某个数
4.has(key)判断是否存在
5.clear()清空集合
DOM运动
元素.offsetleft 当前位置左移
元素.offsetright 当前位置右移