JavaScript (变量,var,Let,Const)

目录

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 的变量声明

我们常常使用 let ,var ,const 声明变量。接下来具体介绍

let 

格式:let  变量名 ;

实例

打开浏览器控制台有两种方式:

1  按F12 键打开

注意:如果按 f12 不管用,可能是键盘还没有解锁(我是这样认为的)你 输入 Fn+F12 就可以

2 选择HTML文件右键选择打开方式浏览器(自己喜欢的浏览器打开),之后在当前网页,右键点击 检查,打开控制台 :console

注意

1 当你输入 let  b 之后,你按回车 会出现:undefined 。

在 “JavaScript数据类型” 这篇博客有详细介绍

原因

undefined:要求整条语句,要有返回值。

但我们使用let 主要还是为了声明变量,没有返回值。所以系统会自动给出 undefined

2 发现整条语句时,没有使用分号表示结束

原因

原本按照我们学习Java的习惯来说,是必须要求我们在每一个语句结束添加分号的。

在JavaScript中 分号可以不用手动添加,JavaScript解析引擎会自动在每一个语句最后插入分号。表示该语句已经结束了。

var

格式:var 变量名;

实例

为什么会出现 undefined ?理由同上!!  !

const 

应用场景:通常声明整个过程中,一直保持不变的变量(常量,字符串等)

 格式:const   变量名=值;

声明时,必须要赋值

实例

注意常使用const表示常量。我们知道常量是不能被修改的(不能被二次赋值)

 

但在这里我们不更改常量原始值,但可以更改常量对象的属性 或数组的数组元素的值。

 实例

我们根据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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值