var let const
//1.声明提升=>先上车,后买票
// console.log(num) //var undefined let 报错
var num=1
//2.变量覆盖=>套牌覆盖
var num1=1
var num1=2
// console.log(num1)
//3.没有块级作用域=>红杏出墙
function fn(){
for(var i=0;i<3;i++){
console.log(i)
}
console.log(i)
}
fn()
//const声明常量 不可修改 必须赋值 支持let的其他属性
const n=123
解构赋值
let a=1;
let b=2;
[a,b]=[b,a]
console.log(a,b,'解构赋值')
构造函数同步执行
const promise=new Promise((resolve, reject)=>{
console.log(1)
resolve()
console.log(2)
})
//.then异步执行
promise.then(()=>{
console.log(3)
})
console.log(4)
// 1 2 4 3
箭头函数是 ES6 中新增的一种函数定义方式,也称为 lambda 函数。相较于传统的函数定义方式,箭头函数具有以下特点:
- 省略了 function 关键字,使用箭头符号(=>)来定义函数。
- 如果函数只有一个参数,可以省略小括号。
- 如果函数只有一条语句,可以省略花括号和 return 关键字。
- 箭头函数中的 this 关键字指向定义时所在的上下文,而不是执行时的上下文。
以下是箭头函数的一些例子:
// 定义一个函数
const sum = (a, b) => {
return a + b;
}
// 如果函数只有一条语句,可以省略花括号和 return 关键字
const double = x => x * 2;
// 如果函数只有一个参数,可以省略小括号
const greet = name => `Hello, ${name}!`;
// 使用箭头函数作为回调函数
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(x => x * 2);
它和普通函数的区别:
箭头函数和普通函数的区别在于其语法形式和作用域。箭头函数使用箭头符号(=>)来定义函数,而普通函数使用 function 关键字。另外,箭头函数还可以省略 function 关键字、参数括号以及 return 关键字(如果函数体只有一行语句的话),使得代码更加简洁。
关于作用域,箭头函数没有自己的 this,它们的 this 是继承自外层作用域。而普通函数的 this 是在函数调用时动态绑定的,即 this 取决于函数被如何调用。因此,在使用箭头函数时需要注意其作用域和 this 的问题,避免出现意外的错误。
扩展运算符
合并数组:
let a=[1,2]
let b=[3,4]
let c=[...a,...b] //1 2 3 4
模板字符串
let name='张三'
let n=`${name}是个好人`
symbol 表示独一无二的值
属性对应的值是唯一的,解决命名冲突问题
Symbol值不能与其他数据进行计算,包括同字符串拼串
for in, for of遍历时不会遍历symbol属性