什么是变量?
在ES6中变量是可以被修改的量,不固定的值变量的,声明可以使用var、let、const来进行变量的声明(推荐使用let声明变量)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>声明变量:let</title>
</head>
<body>
<script>
let a;
// 声明变量:a
// 声明单个变量
let b, c, d;
// 声明变量:b,c,d
// 声明多个变量
let e = 100;
// 声明单个变量并赋值 声明变量(e)并赋值(100),注意是100赋值给变量(a)!
let f = 123, g = 321, h = 666;
// 声明多个变量并赋值
let j = 521, k = 'I LOVE YOU', l = [];
// 声明多个不同的变量并赋值
// j:整型、k:字符串、l:空数组
</script>
</body>
</html>
注意事项!
-
变量不能重复声明(变量名不能重复声明,let不可以,var可以)
-
块级作用域:全局、函数、eval(let块级,var全局)块级作用域是指在代码块内有效,也就是局部有效
-
不存在变量提升(let不可以,var可以)变量提升是指变量声明之前去使用变量
-
不影响作用域链:作用域链在指JavaScript 中用于查找变量的一种机制, 每当在代码中访问一个变量时,JavaScript 引擎都会按照作用域链顺序查找该变量。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
</head>
<body>
<script>
let str = '海绵宝宝';
let str = '派大星';
// 变量不能重复声明
{
let girl = '小红';
}
console.log(girl)
// 块级作用域(代码块内有效,请将上行代码移动到代码块内窗口效果)
{
var boy = '小明';
}
console.log(boy)
console.log(a)
let a = '熊大';
// 不存在变量提升(使用let变量声明之前不可以去使用变量)
console.log(b)
var b = '熊二';
{
let student = 'Jealous';
function fn() {
console.log(student)
}
fn();
}
// 不影响作用域链
</script>
</body>
</html>