1、变量声明关键字
(1)var
- 全局作用域和函数作用域
- 会变量提升
(2)let
- 局部作用域
- 不会变量提升
- 不能重复声明
(3)const
值类型不能修改
声明必须赋值
2、结构
(1)数组 定义 :把数组或对象解析为单独变量
1.基本格式
var[a,b,c="default",...rest]=arr
2.逗号代表下一位
3. ...rest
剩余的所有(只能放在最后)
4.可以有默认值
5.交换变量
[a,b]=[b,a]
(2)对象
var {name,age,say="love you",...rest}=obj
对象解构没有顺序
3、展开
...arr
arr展开为单独变量
4、字符串
(1)字符串模板
`${js变量}`
可以换行,可以加特殊符号
(2)遍历
for of
(3)检测
includes(sub)是否包含
startsWith(sub)以开头
endsWith(sub)以结尾
(4)去空白
trim() 去掉两端空白
trimLeft() 去掉左边空白
trimRight() 去掉右边空白
(5)重复
repeat(e)字符串重复n次
(6)填充
''22''.padStart(4,"0")
''0022''
.padEnd(次数,填充字符串)
5、数组高阶方法
(1)forEach 遍历
- arr.forEach(function(item,index,self){})
- item 当前遍历的元素
index 当前元素的下标
self 当前数组
(2)map 映射
- arr.map(function(item,index,self){
//返回一个,映射数组
})
(3)filter 过滤
arr.filter(function(item,index,self){
//返回真,当前遍历元素保留
//返回假,当前变量的元素过滤掉
})
(4)reduce 累计
arr.reduce(function(a,b){
a是上一次返回的结果
})
(5)some 有一个
有一个返回结果为true最终结果为true
(6)every 每一个
每个返回结果为true最终结果为true
(7)find 查找元素
(8)findIndex 查找下标
(9)sort(a,b)=>a-b) 排序
6、箭头函数
// 01 箭头函数省略function
// 02 =>左边参数
// 03 箭头右边 函数体,返回值
// 04 传参0个或者2个以上 参数加上括号
// 05 如果函数体有多行需要加上{} 如果需要返回值return
// 06 如果返回的是一个对象则用()包裹对象({})
// 07 箭头函数this指向上一层作用域的this
7、函数
(1)默认参数
function fn(a=10,b=10){}
(2)调用:扩展参
fn(...arr)
(3)定义:不定参
function(...args){
}
8、对象
1.对象简写
- 变量和值简写
- 函数function简写
- var name=“mumu”
var obj={
name,
say(){alert(this.name)}
}
2.对象动态属性
{[nick+"msg"]:"你好呀"}
9、类
(1)面向对象基本特点:封装;继承;多态;接口
(2)单词:
extends 继承
constructor 构造函数
super 超类
static 静态
(3)定义类类方法
class Person{
constructor(name,age){
this.name=name
this.age=age
}
say(){
alert("你好")
}
}
(4)实例化类
var p1=new person()
(5)类中的this
Person类中的this指向、当前类的实例(p1)
(6)继承
class Teach extends Person{
constructor(name,age,major){
super()
this.major=major
}
}
10、模块 module
(1)导入
import{name,fun,Square}from'./api.js'
import Square from './api.js'
import Sqfrom './api.js'
别名as,*代表所有
import * api from './api.js'
api.name;api.fun()
别名
import Square,{name,fun as fn}from ‘./api.js’
(2)导出
- expost{name,fun,Square} 导入多次
- export default Square 默认只能导出一次
11、set
定义:没有重复元素的集合(数组)
初始化:
var s1=new Set()
var s2=new Set([1,2,5])
添加
sl.add()
删除
sl.delete()
检测
sl.clear()
长度
sl.size
转数组
Array.from(s1)
[...s1]
数组去重 arr1=[...new Set(arr)]