变量

什么是变量

变量是储存数据信息的容器。

变量被认为是有名字的容器器。在代码中,使⽤用变量量名为值命名,需要遵循⼀一定的规则。

在 JavaScript 代码中,必须先声明⼀一个变量量,这个变量才能被使⽤用。 JavaScript 中的变量量是弱类型的,也被称之为松散型的。

所谓弱类型/松散型,就是指可以⽤用来保存任何类型的数据。

变量的声明

在 JavaScript 中,使⽤用变量量前应当先声明。变量量是使⽤用关键字 var 声明的。

只声明,未初始化,变量量的值⾃自动取值为 undefined

⼀⾏代码只声明⼀一个变量量:

var a; // 值为 undefined
 var num; // 值为 undefined

⼀⾏代码声明多个变量量:

var x, y, z; // 值为 undefined

将变量的声明和初始化合写在一起

⼀行代码只声明⼀一个变量量并赋值:

var sum = 100; // 值为 100
 var msg = "this is a message"; // 值为 this is a message

⼀行代码声明多个变量量并赋值:

var x = 0, y = 1, z = 2; 
var x = y = z = 10; // x y z 值都为 10

命名规则

变量的命名需要遵守一定的规则,具体则如下:

  • 必须以字⺟母、下划线 _ 、美元符号 $ 开始。
  • 不能以数字开头。
  • 不能使⽤用关键字和保留留字作为名称。
  • 由于 JavaScript 是区分⼤大⼩小写的,⼤大写字⺟母与⼩小写字⺟母并不不冲突。
  • 名称最好有明确的含义。
  • 可以采⽤用“下划线命名法”、“驼峰命名法”等。

声明的问题

重复声明

使⽤用 var 语句句重复声明变量量是合法且⽆无害的。但是,如果重复声明并初始化的,由于 JavaScript 变量量只 能存储⼀一个数据,之前存储的数据会被覆盖掉。

var sum = 100; 
var sum = "abc";

遗漏的声明

  • 直接读取⼀个没有声明的变量的值,JavaScript 会报错。
  • 为一个没有声明的变量初始化,是合法的,但并不推荐这样使用。

变量的使⽤

对声明的变量量既可以读取操作,也可以赋值操作。

  • 读取操作
var sum; // 只声明未初始化 
console.log(sum); // 输出 undefined
 var msg = "hello"; // 声明并初始化 
console.log(msg); // 输出 hello
  • 赋值操作
var sum; // 只声明未初始化
 sum = 100; // 初始化操作
 var msg = "hello"; // 声明并初始化
 msg = "world"; // 重新赋值

变量提升

JavaScript 引擎的工作⽅式是,先解析代码,获取所有被声明的变量,然后再⼀⾏⼀⾏的运⾏。这造成的结 果就是,所有的变量量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting)。

例如:

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

输出结果:

undefined
 1

说明:

1. 上面的代码等同于:

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

2. 变量声明被提升到头部时还没有赋值,所以默认等于 undefined

3. 变量提升只对 var 命令声明的变量有效。如果一个变量不是⽤ var 声明的,就不会发⽣变量提 升。

原文地址:https://www.cnblogs.com/zuiai/p/7141356.html