JavaScript遵循ECMAScript标准,简单理解就是用ES表示js版本
例:
- Java8、Java9,说的是java se的版本
- python2、python3说的是python的版本
变量
- 使用 let 代替 var
- 块级作用域
- 不存在变量提升
- 不允许重复声明
// 变量
// var str = "hello world"
// {
// let str = "hello world" // ES6使用let定义变量 let声明是变量只在块内有用,外面访问不到
// }
// console.log(str);
常量
- const定义常量
- 定义以后不允许修改
- 用常量声明不变的值
- 函数表达式可以使用常量
- 对象声明可以使用常量
- 引入外部模块使用常量
// 常量 (const)
// const y = 12
// y = 2
// console.log(y); // 常量被修改会报错
// 函数表达式可以使用常量
// const fun = function () {
// console.log("hello world");
// }
// fun()
// 对象声明可以使用常量
// function getObject() {
// return { name: "小羊" }
// }
// const yy = getObject()
// yy.name = "羊羊"
// console.log(yy.name);
// const 常量不可以直接赋值成其他值 但是如果是一个对象,可以修改对象里面的数据
模板字符串
- 支持换行
- 支持嵌入变量
// 模板字符串 ``
// let year = "2021"
// let month = "10"
// let date = "10"
// 2020年10月10日
// let result = year + "年" + month + "月" + date + "日" // 太麻烦
// 使用模板字符串
// let result = `${year}年${month}月${date}日` // 推荐
// console.log(result);
解构赋值
- 数组的解构赋值
- 对象的解构赋值
- 通过解构赋值传递参数
// 解构赋值
// 1. 数组的解构赋值
// let n = 10
// let m = 10
// let [n, m] = [10, 20]
// console.log(n);
// console.log(m);
// 1.1 交换变量
// let n = 10;
// let m = 20;
// 交换变量
// let temp
// temp = n
// n = m
// m = temp
// 使用解构赋值交换变量
// 🔺 使用解构赋值调换的时候前面的代码必须加分号; 不然会报错
// [n, m] = [m, n]
// console.log(n);
// console.log(m);
// 对象的解构赋值
// 常规
// let name = "🐏"
// let age = 12
// 对象解构赋值 name、age顺序可以随便调换
// let { name, age } = { name: "🐏", age: 12 }
// console.log(name);
// console.log(age);
// 通过解构赋值传参(常用)
let yy = { name: "🐏", age: 12 }
// function getName(obj) { // 常规
function getName({ name }) { // 简洁
return name
}
let result = getName(yy)
console.log(result);