返回
ES6中的var、let、const与static
前端
2024-02-20 15:44:17
var
var是ES6之前唯一的变量声明方式。它声明的变量具有函数作用域,即在函数内声明的变量只能在该函数内使用,在函数外无法访问。
function foo() {
var x = 10;
}
console.log(x); // ReferenceError: x is not defined
let
let也是一种变量声明方式,但它声明的变量具有块级作用域,即在代码块内声明的变量只能在该代码块内使用,在代码块外无法访问。
if (true) {
let x = 10;
}
console.log(x); // ReferenceError: x is not defined
const
const也是一种变量声明方式,但它声明的变量是常量,即该变量的值一旦被初始化就无法被修改。
const x = 10;
x = 20; // TypeError: Assignment to constant variable.
static
static用于声明静态方法和属性。静态方法和属性属于类本身,而不属于类的实例。
class Foo {
static bar() {
console.log('Hello, world!');
}
}
Foo.bar(); // Hello, world!
注意点
var
- var声明的变量具有函数作用域,即在函数内声明的变量只能在该函数内使用,在函数外无法访问。
- var声明的变量可以重复声明,但会覆盖之前声明的变量。
- var声明的变量可以在声明之前使用,这会导致暂时性死区。
let
- let声明的变量具有块级作用域,即在代码块内声明的变量只能在该代码块内使用,在代码块外无法访问。
- let声明的变量不能重复声明,否则会报错。
- let声明的变量可以在声明之前使用,但不会导致暂时性死区。
const
- const声明的变量是常量,即该变量的值一旦被初始化就无法被修改。
- const声明的变量不能重复声明,否则会报错。
- const声明的变量必须在声明时初始化,否则会报错。
static
- static关键字用于声明静态方法和属性。
- 静态方法和属性属于类本身,而不属于类的实例。
- 静态方法可以通过类名直接调用,而静态属性可以通过类名.属性名直接访问。
总结
ES6中新增了三种变量声明方式:var、let和const,以及static关键字用于声明静态方法和属性。这四种声明方式各有其特点和用途,在实际开发中应根据具体情况选择合适的声明方式。