JavaScript中的变量、关键字、保留字

一、变量

        JavaScript中的变量是松散类型的,也就是可以用来保留任何类型的数据。定义变量时要是用var或let操作符,如下所示:

var a=1;
let a=1;
var b;
let c;

        在声明变量的同时,可以为变量赋值,如果不赋值,那么变量的值为undefined。        

        可以在赋值的同时改变变量的类型,比如以下代码是合法的:

var a=1;
a='abc';

         需要注意的是,虽然以上写法合法,但在实际开发中并不推荐这种写法。

        使用var和let在某些情况下作用是相同的,比如在同为全局变量,或者同为一个函数内的变量,如下所示

        但var和let在某些情况下又有不同之处,比如以下代码:

if(1==1){
  var a=1;
  let b=1
}
console.log(a)
console.log(b)

        console.log是浏览器控制台打印语句,执行以上代码后,控制台显示如下:

JavaScript中的变量、关键字、保留字_第1张图片

        说明在if语句内使用var定义的变量,在if语句外也可以访问,而在if语句内使用let定义的变量,在if语句外则无法访问。同理,以上规则同样适用在for循环、while循环语句以及switch块中,以下两段代码会得到同样的输出:

for(i=0;i<3;i++){
  var a=1;
  let b=1
}
console.log(a)
console.log(b)
var i=1;
switch (i) {
  case 1:
    var a=1;
    let b=1
}
console.log(a)
console.log(b)

        另外,var和let的另一个不同之处是var定义的变量可以先访问后声明,而let则必须先声明再访问,比如以下代码

console.log(a)
var a=1;
console.log(b)
let b=1

        运行后输出结果如下

JavaScript中的变量、关键字、保留字_第2张图片

        最后一点需要说明的是,let不能被重定义,而var是可以的,以下代码输出结果为2

var a=1;
var a=2;
console.log(a)

        而以下代码则直接报错

let a=1;
let a=2;
console.log(a)

JavaScript中的变量、关键字、保留字_第3张图片

        声明变量的时候也可以省略var和let,例如下面的代码是合法的,但不推荐

a=1;
console.log(a)

 二、关键字

        关键字用于表示控制语句的开始或结束,或执行特定操作符等。关键字不可用作变量名、函数名、参数名、属性名等。以下是JavaScript中的全部关键字

break do instanceof typeof
case else new var
catch finally return void
continue for switch while
debugger function this with
default if throw
delete in try

三、保留字

        除了关键字之外,JavaScript还规定了一组保留字,表示虽然目前没有在语言中使用,但它们将来有可能被用作关键字。以下是JavaScript中的所有保留字:

abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
debugger implenments protected volatile
double import public

你可能感兴趣的:(javascript,开发语言,ecmascript)