ECMAScript
一.let、var、const定义
1.let定义的变量不可以重复声明,var可以
2.let具备块级作用域,var没有块级作用域
if() {
//块级作用域
}
3.var和let都具备函数级别的作用域
function test() {
//函数级别作用域
}
4.var存在变量提升的特性,let不存在 这个特性
5.const声明的同时要有初始值,并且赋予初始值后就不能改变
二.解构赋值
1.数组的解构
const F4 = [A, B, C, D]
let [a, b, c, d] = F4
2.对象的解构
cost abs = {
usename : '张三',
age : 15,
yanxiaopin: function() {
console.log("演小品")
},
}
let {usename, age, yanxiaopin} = abs
三.引号和反引号区别
let str1 = '字符串1' //单引号和双引号都输出普通字符串
let str2 = `字符串2` //反引号也可以正常输出
区别:反引号可以将字符串原样输出(包括回车等等)
let htmlStr = `<ul><li>你好</li></ul>`
四.变量拼接(插值表达式)
let str1 = "张三"
let str2 = `我喜欢${str1}` //注意这边是反引号
五.声明对象的简写
let name = '张三'
let age = 20
let sex = function() {
console.log('男')
}
//传统
let per = {
name: name,
age: age,
sex: sex,
}
//简化
let per = { //当变量名和属性名一样时可以简写
name,
age,
sex,
}
六.定义的简化
//传统
let per1 = {
str: function() {
console.log('aaaaaa')
}
}
//简化 无参时才可以简化
let per2 = {
str() {
console.log('bbbbbb')
}
}
七.函数参数的默认值
function add(a) {
return 100 + a
}
function add() {
return 200
}
int result = add(10)
console.log(result)// 最终值输出为200,原因是javascript 相同函数后定义的会覆盖先定义的
八.对象拓展运算符
let str1 = {name: "张三", age: 19}
let str2 = str1 //引用传递
//let str2 = { ...str1 } // 复制
console.log(str1) //输出{name: "张三", age: 19}
console.log(str2) //输出{name: "张三", age: 19}
str2.name = "李四"
console.log(str1) //输出{name: "李四", age: 19}
console.log(str2) //输出{name: "李四", age: 19}
九.=>箭头函数
function str(a) {
return 1000 + a
}
let str = function(a) {
return 1000 + a
}
let str = (a) => {
return 1000 + a
}
//当只有一个参数,小括号可以省略
//当直接return时,大括号可以省略
let str = a => 1000 + a