【ECMAScript系列 3.0】 : 常量与变量

166 阅读5分钟

常量

1.什么是常量?

  • 常量表示一些固定不变的数据

  • 现实生活中人的性别其实就可以看做是常量, 生下来是男孩一辈子都是男孩, 生下来是女孩一辈子都是女孩

2.JavaScript中常量的分类

  • 整型常量

    • 整型常量其实就是正数, 在JavaScript中随便写一个整数都是整型常量,如1 / 666 / 99
  • 实型常量

    • 实型常量其实就是小数, 在JavaScript中随便写一个小数都是实型常量,如3.14 6.66
  • 字符串常量

    • 字符串常量其实就是用单引号或者双引号括起来的内容, 我们就称之为字符串常量,如 'a' / ‘abc' / "1" / "知播渔教育"
    • 注意点: 无论用单引号或者双引号括起来了多少个字符, 在JavaScript中都是字符串常量
  • 布尔常量

    • 布尔常量其实就是真或者假, 在JavaScript中通过true和false来表达
    • 在JavaScript中布尔常量只有两个取值, 真(true)或者假(false)
  • 自定义常量

    • 在ES6中新增的
    • const 常量名称 = 常量取值;

变量

1.什么是变量?

  • 变量表示一些可以被修改的数据

  • 在现实生活中超市的储物格就是变量, 在不同的时间段里面, 储物格中存储的数据也不一样

2.如何定义一个变量

  • 在JavaScript中可以通过定义变量的方式来生成储物格, 也就是告诉浏览器, 我们需要一块内存空间
var 变量名称;

3.如何使用变量

  • 使用变量就是往申请的那块内存空间中存储数据, 和获取存储的数据

3.1如何存储数据

变量名称 = 需要存储的数据;

可以将等号右边需要存储的数据放到等号左边变量申请的那块存储空间中

3.2如何获取存储在变量中的数据

变量名称

// 定义一个变量
var num;
// 往变量中存储数据
num = 123;
// 从变量中获取存储的数据
console.log(num);

4.如何修改变量中存储的数据

在JavaScript中想要修改变量中存储的数据, 只需要再次给变量直接赋值即可

num = 666;
console.log(num);

5.在JavaScript中第一次给变量赋值, 我们称之为"变量的初始化"

var num;
num = 321; // "变量的初始化"
num = 888; // 不是"变量的初始化"

6.如果一个变量没有进行初始化, 那么变量中存储的是什么呢?

  • 在JavaScript中如果定义了一个变量,但是没有进行初始化, 那么变量中存储的是undefined
var num;
console.log(num);  //undefined

7.给变量初始化有很多种形式

  • 先定义变量, 再对变量进行初始化
var num;
  • 可以在定义变量的同时对变量进行初始化
var value = 666; // 定义的同时初始化

8.定义变量的其它格式

  • 同时定义多个变量的格式,格式: var 变量名称1, 变量名称2, .... ;
var num, value; // 同时定义两个变量

9.初始化变量的其它格式

  • 如果在企业开发中对多个变量初始化的值都是一样的, 那么我们可以通过:变量名称1 = 变量名称2 = 变量名称... = 初始化值;
var num = value = 123; 
// 同时对num和value进行初始化, num和value中存储的数据都是123

10.定义多个变量的同时给多个变量分别初始化

var num = 123, value = 666;

11.注意点

  • 在JavaScript中变量之间是可以相互赋值的
var num;
var value;
num = 123;
value = num; // 将num中的值拷贝一份给value
console.log(num);  //123
console.log(value);  //123
  • 在JavaScript中如果定义了同名的变量, 那么后定义的变量会覆盖先定义的变量
var num = 666;
num = 888; 
// 如果num前面没有var, 那么就是修改变量中存储的值
var num = 888;
// 如果num前面有var, 那么就不是修改变量中存储的值, 而是重新定义一个新的变量
  • 在老版本的标准的(ES6之前)JavaScript中可以先使用变量, 再定义变量, 并不会报错
  • 由于JavaScript是一门解释型的语言, 会边解析边执行, 浏览器在解析JavaScript代码之前还会进行一个操作"预解析(预处理)":将当前JavaScript代码中所有变量的定义和函数的定义放到所有代码的最前面
console.log(num);
var num = 123;

预处理之后的代码
var num;
console.log(num); // undefined
num = 123;

12.ES6变量定义

为了解决老版本标准的的两个注意点:

  • 在JavaScript中如果定义了同名的变量, 那么后定义的变量会覆盖先定义的变量
  • 在老版本的标准的(ES6之前)JavaScript中可以先使用变量, 再定义变量, 并不会报错,在ES6中就推出了一种新的定义变量的方式
格式:
ES6之前: var 变量名称;
ES6开始: let 变量名称;

// 定义一个变量
let num;
// 给变量初始化
num = 666;
// 取出存储的数据
console.log(num);
// 修改变量中存储的数据
num = 888;
// 取出存储的数据
console.log(num);

// var num = 123;
// var num = 888;
let num = 123;
let num = 888; 
console.log(num);  //会报错 

console.log(num);
var num = 123;   undefined
console.log(num);
let num = 123;   //报错