目录
JavaScript 变量
JavaScript 变量
JavaScript 标识符
声明(创建) JavaScript 变量
JavaScript Let
全局作用域
函数作用域
块作用域(Let)
重新声明变量
JavaScript Const
在声明时赋值
JavaScript 变量
JavaScript 变量
JavaScript 变量是存储数据值的容器。
在本例中,x、y 和 z 是变量:
var x = 7;
var y = 8;
var z = x + y;
从上例中,可获得:
- x 存储值 7
- y 存储值 8
- z 存储值 15
JavaScript 标识符
标识符适用于给变量命名的。
命名规则如下
1 字母,数字,下划线,美元符号组成
2 首字母不能是数字
3 区分大小写
4 不能含有关键字
声明(创建) JavaScript 变量
在 JavaScript 中创建变量被称为“声明”变量。
可以通过 var
关键词来声明 JavaScript 变量。同时也可以通过let ,Const声明,这个后面会了解到:
var name;
//声明之后,变量是没有值的。(技术上,它的值是 undefined。)
JavaScript Let ,var
我们根据Let 和 var 处在的位置,划分范围(在函数中,代码块({ ...... }),全局范围内。
全局作用域
全局作用域:这个变量在任何地方,都可以被使用。在java中称之为全局变量。
var carName = "porsche";
// 此处的代码可以使用 carName
function myFunction() {
// 此处的代码也可以使用 carName
}
函数作用域
函数作用域:局部(函数内)声明的变量拥有函数作用域。在java中,表示为局部变量,只在方法中起作用。
// 此处的代码不可以使用 carName
function myFunction() {
var carName = "porsche";
// code here CAN use carName
}// 此处的代码不可以使用 carName
了解全局作用域和函数作用域后,我们再学习 let 声明的块作用域
块作用域(Let)
通过 var
关键词声明的变量没有块作用域。
在块 {} 内声明的变量可以从块之外进行访问。
{
var x = 10;
}
// 此处可以使用 x
可以使用 let
关键词声明拥有块作用域的变量。
在块 {} 内声明的变量无法从块外访问:
{
let x = 10;
}
// 此处不可以使用 x
共同点:
- 块作用域和函数作用域 在java中都表示为局部变量。在外部无法访问。
- 除了块作用域,其他的(函数作用域,全局作用域)都可以使用var 和let 表示
重新声明变量
实例
通过案例可以发现:
var 声明的变量,不存在是块作用域
因此我们声明两次变量x,且都表示为全局作用域。这就发生了问题。在输出x存储的值,不知道是具体表示哪一个?
应该使用
let
关键字重新声明变量可以解决这个问题。在块中重新声明变量不会重新声明块外的变量:
总结:很大程度上,我们不会一直使用var,一般使用let,在语法规则上和java规则差不多的。
原因是:使用var导致声明变量的范围,不清晰。
当你使用innerHTML时,Let声明的块作用域中变量是无法在外部表示的,因此结果为var 表示的全局作用域 10
JavaScript Const
通过 const
定义的变量与 let
变量类似,但不能重新赋值:
在声明时赋值
JavaScript const
变量必须在声明时赋值:
注意:常使用Const表示常量。我们知道常量是不能被修改的,但在这里我们不更改常量原始值,但可以更改常量对象的属性。