当声明变量时,使用不同的关键字会产生不同的效果:
- 使用
var
关键字:
var x = 10;
var x = 20; // 可以重新声明
x = 30; // 可以重新赋值
- 使用
let
关键字:
let y = 10;
let y = 20; // 重复声明会报错
y = 30; // 可以重新赋值
- 使用
const
关键字:
const z = 10;
const z = 20; // 重复声明会报错
z = 30; // 赋值会报错,常量值不能修改
- 使用
var
关键字声明的变量可以多次声明和赋值。 - 使用
let
关键字声明的变量不能重复声明,但可以重新赋值。 - 使用
const
关键字声明的变量不能重复声明,且不能重新赋值,被视为常量。
-
var
: 它是ES5中声明变量的关键字,具有函数级作用域。使用var
声明的变量可以在其声明的函数内部访问,也可以在函数外部访问。如果在函数内部使用var
声明变量,它将成为该函数的局部变量。如果在函数外部使用var
声明变量,它将成为全局变量。var
声明的变量可以被多次声明,而且在声明前使用也不会报错。 -
let
: 它是ES6中引入的新关键字,具有块级作用域。使用let
声明的变量的作用域被限制在当前块内,例如if
语句块、for
循环块、函数块等。let
声明的变量不允许被重复声明,而且在声明前使用会报错。 -
const
: 它也是ES6中引入的新关键字,用于声明常量。const
声明的变量的值不能被修改,一旦赋值后就不能再进行赋值操作。const
声明的变量也具有块级作用域,不允许重复声明。
val
不是JavaScript中的关键字,是kotlin的关键字。
总结来说:
var
具有函数级作用域,允许重复声明。let
具有块级作用域,不允许重复声明。const
用于声明常量,具有块级作用域,不允许重复声明和修改。