变量

2018-01-29大约9分钟

前面提到的几种基础类型,都是常量,即不可变的。比如3和5是两个不同的常量,我们不能把3改成5,3就是3,5就是5。

实际编程中,我们不能总写数字、字符串这些常量来编程,因此需要引入变量来表示内存中的数据。

定义变量

定义变量,传统上的关键词是var。但是由于JavaScript早期糟糕的设计,var声明的变量作用域过大,因此目前一般不推荐使用var。不过由于var用得太普遍了,许多书和网上的代码都是用var来定义的,因此还是需要知道的。

var studentName = "张三";
console.log(studentName);
studentName = "李四";
console.log(studentName);

使用等号(=)将数据放到变量中的过程称为变量赋值,因此称=是赋值运算符。

行尾的分号(;)并不是变量名的一部分,而是表示前面的JavaScript语句结束。有些情况下,分号并不是必须的,但是强烈建议代码都写上分号,这样代码更易读。

ES2015里面,顶替var的是两个新的关键词letconst

let :定义普通的变量。普通的场景和var很像。

let studentName = "张三";
console.log(studentName);
studentName = "李四";
console.log(studentName);

const :定义常量,即值不能再变的变量。

const ONE = 1;
console.log(ONE);

ONE = 2; // 这行代码有问题,运行会报错
console.log(ONE); 

定义好的常量,是不可以再赋其他值的。

变量命名规则

每个变量都有一个名字,以便在代码的其他地方使用。

变量命名有这些规则:

1. 安全的字符

一般,只要使用英文字母(a-z)、数字(0-9)、下划线(_)都是比较安全的字符。

2. 区分大小写

aValueavalue是两个不同的变量。

3. 某些单词或字符不能用作变量名

JavaScript有些保留字,是不能用的,比如var、const、let、with、function, 等等

4. 某些符号不可以用在变量名中

比如&%是不可以用在变量名中的。

5. 数字不能用在变量名的开头

101dogs是不合法的,dogs101则是合法的。

一般习惯上,JavaScript采用的是小写开头驼峰命名法,比如:

  • name
  • age
  • courseName
  • currentTime
  • tempResult

为了让代码易于理解,应该使用有意义的变量名称。这样,在代码中用到这个变量的时候,就知道这个变量的作用。

上面列举的变量名比如name、currentTime都是清晰的命名,下面再列举一些不太好的变量名。

// 过短的变量名,只看名称看不出用途
let i;
let j;
let k;
let a;
let x;

// 不合理的缩写
let couNam; // courseName;
let ag;         // age

// 使用汉语拼音。汉语拼音是用来给汉字注音的,单纯的拼音并不易理解
let nianling; // 年龄
let linshibianliang; // 临时变量