JavaScript 变量


JavaScript中变量是一个容器,可以将变量看做一个盒子,对变量赋值,就是往盒子中放一个对象(数据)。


对象有类型和值,变量只是对象的引用。同一个变量在不同时间可以引用不同类型的对象。

创建变量

JavaScript有三种方式创建变量:

  • 使用var语句创建变量。可以创建全局变量和局部变量。例如 var x; 创建变量x,x会被赋值为默认值undefined。例如 var y = 2; 创建变量y,并赋值为数字2。
  • 直接赋值。例如 x = 3; 这样创建全局变量。在严格模式下会产生错误。不推荐使用此种方式创建变量。
  • 使用let语句创建变量。用来创建块作用域的局部变量。ECMAScript 6后可用。如果创建变量时没有赋值,会被赋值为undefined。

有两种方式创建多个变量:

  • var x = 1, y = 2, z = 3;
  • var [a, b, c] = new Array("1", "2", "3"); 将数组或对象的数据赋值给多个变量。

下面是创建变量的例子:

<!DOCTYPE html><html><body><pre>
<script type="text/javascript">
  var x = 1
  var y;
  document.writeln("x : " + x); // 1
  document.writeln("y : " + y); // undefined

  function say() {
    z = 3;
  }

  say();
  document.writeln("z : " + z); // 3

  var a = 1, b = 2, c = 3;
  var [a2, b2, c2] = new Array("aa", "bb", "cc");
  document.writeln("b : " + b);   // 2
  document.writeln("b2 : " + b2); // bb
</script>
</pre></body></html>

变量类型

JavaScript有两种变量:

  • 全局变量(global variable),全局变量是指任何JavaScript代码都可以访问的变量。
  • 局部变量(local variable),局部变量是指在函数内定义,并且只能在函数内部被访问的变量。

下面是变量类型的例子:

<!DOCTYPE html><html><body><pre>
<script type="text/javascript">
  // global
  var x = 1;
  function say() {
    // local
    var y = 2;
    document.writeln("x : " + x); // 1
    document.writeln("y : " + y); // 2
    if (true) {
      // block local
      // let z = 3; // ECMAScript 6 support
    }
    // document.writeln("z : " + z); // error: z is not defined
  }

  say();
  document.writeln("x2 : " + x);  // 1
</script>
</pre></body></html>

变量命名规则

  • 变量名只能包含字母、数字、下划线和美元符号($)。
  • 变量名不能以数字开头。
  • 变量名区分大小写。