javascript基础学习系列八:关键字与保留字

本文介绍了ECMAScript中关于保留关键字的使用规则,强调了变量(var、const、let)的声明方式及其作用域区别,以及松散类型的特性。特别提到了使用var声明的变量是局部作用域,而全局变量的创建方式。
摘要由CSDN通过智能技术生成

ECMA-262 描述了一组保留的关键字,这些关键字有特殊用途,比如表示控制语句的开始和结束, 或者执行特定的操作。按照规定,保留的关键字不能用作标识符或属性名。

break       do
case        else
catch       export
class       extends
const       finally
continue    for
debugger    function    this
default     if          throw
delete      import      try
in            typeof
instanceof    var
new           void
return        while
super         with
switch        yield

规范中也描述了一组未来的保留字,同样不能用作标识符或属性名。虽然保留字在语言中没有特定 用途,但它们是保留给将来做关键字用的。

这些词汇不能用作标识符,但现在还可以用作对象的属性名。一般来说,最好还是不要使用关键字和保留字作为标识符和属性名,以确保兼容过去和未来的 ECMAScript 版本。

1. 变量:

ECMAScript 变量是松散类型的,意思是变量可以用于保存任何类型的数据。每个变量只不过是一 个用于保存任意值的命名占位符。有 3 个关键字可以声明变量:var、const 和 let。其中,var 在 ECMAScript 的所有版本中都可以使用,而 const 和 let 只能在 ECMAScript 6 及更晚的版本中使用。

要定义变量,可以使用 var 操作符(注意 var 是一个关键字),后跟变量名(即标识符,如前所述):

var message;

这行代码定义了一个名为 message 的变量,可以用它保存任何类型的值。ECMAScript 实现变量初始化,因 此可以同时定义变量并设置它的值:

    var message = "hi";

这里,message 被定义为一个保存字符串值 hi 的变量。像这样初始化变量不会将它标识为字符串 类型,只是一个简单的赋值而已。随后,不仅可以改变保存的值,也可以改变值的类型:

var message = "hi";
message = 100; // 合法,但不推荐

在这个例子中,变量 message 首先被定义为一个保存字符串值 hi 的变量,然后又被重写为保存了数值 100。虽然不推荐改变变量保存值的类型,但这在 ECMAScript 中是完全有效的。

2. var 声明作用域:

关键的问题在于,使用 var 操作符定义的变量会成为包含它的函数的局部变量。比如,使用 var 在一个函数内部定义一个变量,就意味着该变量将在函数退出时被销毁:

function test() {
var message = "hi"; // 局部变量
}
test();
console.log(message); // 出错!

message 变量是在函数内部使用 var 定义的。函数叫 test(),调用它会创建这个变量并给 它赋值。调用之后变量随即被销毁,因此示例中的最后一行会导致错误。不过,在函数内定义变量时省 略 var 操作符,可以创建一个全局变量:

    function test() {
message = "hi"; // 全局变量 }
    test();
    console.log(message); // "hi"

去掉之前的 var 操作符之后,message 就变成了全局变量。只要调用一次函数 test(),就会定义 这个变量,并且可以在函数外部访问到。

因为 ECMAScript 是松散类型的,所以使用不同数据类型初始化的 变量可以用一条语句来声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值