「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
基础知识常学常新系列!🙉
let 命令
声明变量的命令
-
不存在变量提升
-
let声明的变量只在它所在的代码块有效。如:`for`循环的计数 for (let i = 0; i < 10; i++) { // ...} console.log(i); // ReferenceError: i is not defined -
暂时性死区(temporal dead zone,简称 TDZ)
var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } //虽然先声明了tmp,但是块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。 -
同一个作用域不可使用
let重复声明同一个变量。这段代码的输出结果是? for (let i = 0; i < 3; i++) { let i = 'abc'; console.log(i); }
const命令
除了不能改变物理指针的特性,其他特性和let一样
-
const声明一个只读的常量。一旦声明,常量的值就不能改变。(这是针对简单的数据类型而言的)const PI = 3.1415; PI // 3.1415 PI = 3; // TypeError: Assignment to constant variable. -
声明复杂数据类型的时候,物理指针不可改变,但是可以改变数据内的属性值,以及可以给数据添加新属性等操作。
-
const一旦声明变量,就必须立即初始化
import命令
使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。
这之前有说过详细的 👉 前端的模块化机制
class命令
声明类的命令
ES6 引入了 Class(类)这个概念,作为对象的模板。通过class关键字,可以定义类。
-
constructor()方法是类的默认方法class Point {} // 等同于 class Point { constructor() {} } //一个类必须有`constructor()`方法,如果没有显式定义,一个空的`constructor()`方法会被默认添加。 -
类必须使用
new调用,否则会报错 -
在“类”的内部可以使用
get和set关键字,对某个属性设置存值函数和取值函数,拦截该属性的存取行为。class MyClass { get prop() { return 'getter'; } set prop(value) { console.log('setter: '+value); } }
var命令
声明变量的命令
- var声明的变量可以提升。(这个现在应该用的少了。)
function命令
JavaScript 使用关键字 function 定义函数。
函数可以通过声明定义,也可以是一个表达式。
参考资料:let 和 const 命令
🎨【点赞】【关注】不迷路,更多前端干货等你解锁
往期推荐