变量声明
let
let a,
let b,c,d
let e='1',f='2'
let和var的区别
- 使用var声明的变量,其作用域为该语句所在的函数内,且存在变量提升现象;
- 使用let声明的变量,其作用域为该语句所在的代码块内,不存在变量提升;
- let不允许在相同作用域内,重复声明同一个变量;
- 块级作用域
const
const A=10
{
const SCHOOL='大学'
}
const USER={
'name':'张三',
}
USER.name='李四'
- const定义是需要赋初始值
- 一般常量使用大写
- 常量的值不能修改
- 块级作用域
- 可以于数组和对象的元素修改,不算做对常量的修改
变量解构赋值
按照一定的模式从数组或者对象中取值,对变量进行赋值的过程称为解构
- 数组的解构
const ARR=['1','2','3','4']
let [num1,num2,num3,num4] = ARR
console.log(num1)
console.log(num2)
console.log(num3)
console.log(num4)
- 对象的解构
const user ={
name:'张三',
age:25,
work:function(){
console.log('码畜')
},
}
let {name,age,work} = user
console.log(name)
console.log(age)
work()
模板字符串
let str =`模板字符串`
console.log(str)
//可以直接换行允许出现换行符
let html =`<div>
<div></div>
</div>`
console.log(html)
//变量拼接
let strA='拼接一个'
let strB=`${strA}模板字符串`
console.log(strB)
对象的简化写法
let name='张三',age=25,
let work=function(){
console.log('码畜')
},
const user ={
name,
age,
work
}
箭头函数
- this是静态的,this只想函数生明时所在的作用域下的this值
//let fn = function(){}
let fn=(a,b)=>{
return a+b
}
let result = fn(1,2)
console.log(result)
function getName() {
console.log(this.name)
}
const getName2 = () => {
console.log(this.name)
}
window.name = '张三'
const user = {
name: '李四'
}
// 直接调用
// getName() 张三
// getName2() 张三
// call方法调用
getName.call(user) // 李四
getName2.call(user) // 张三
2.不能作为构造函数
const user = (name, age) => {
this.name = name
this.age = age
}
const me = new user('张三', 20)
console.log(me)
3.不能使用arguments
let fn=()=>{
console.log(arguments)
}
fn()
4.箭头函数简写
形参只有一个
let add =n=>{
return n+n
}
语句执行结果就是函数的返回值
let pow =n=> n*n
函数参数默认值设置
- 形参初始值 具有默认值的参数,一般位置要靠后
function add(a,b,c=10){
return a+b+c
}
let result = add(1,2)
console.log(result)
- 默认值可以和解构赋值结合
function login({admin,password='123456'}){
console.log(admin)
console.log(password)
}
login({
admin:'admin',
password:'123456',
})
rest参数
rest参数必须要放到参数的最后
function date(...args){
console.log(args) //是一个数组
}
date(1,2,3)
... 扩展运算符
1.数组的应用
//合并数组
let a=[1,2]
let b=[3,4]
let c=[...a,...b]
//拷贝数组
let d=[1,2,3]
let e =[...d]
1.对象的应用
//合并
let a={
name:'张三',
age:25
}
let b={
height:180
}
let c={...a,...b}
拷贝
let c={
name:'张三',
age:25
}
let d={
...c
}
Set
let arr=new Set([1,2,3,4,4])
console.log(arr)//[1,2,3,4]
//元素个数
console.log(arr.size) //4
//添加
arr.add(5)
//删除
arr.delete(4)
//检测
arr.has(4) //true
//清空
arr.clear()