# 变量的介绍
变量是计算机中用来存储数据的容器,它可以让计算机变得有记忆。简单理解是一个个的盒子。
# 变量的作用
变量是用来存放数据的。
注意:变量指的是容器而不是数据。
# 变量的本质
内存:计算机中存储数据的地方,相当于一个空间。
变量:是程序在内存中申请的一块用来存放数据的小空间。
垃圾回收机制:变量不使用自动回收。
# 变量的使用
# 声明并赋值
使用
let
这个关键字,告诉浏览器,我们定义了一个变量,使用=
告诉浏览器,我们要把右边的数据赋值到左边的变量名中,然后当我们使用这个数据时,就可以直接使用这个变量名代替这个数据。
// 基本格式
let 变量名 = 数据;
# 先声明再赋值
变量定义分为两个过程:变量声明和变量赋值。
声明变量
声明变量有两部分构成:声明关键字、变量名(也叫标识符)
let 即关键字(let: 允许、许可、让、要),所谓关键字是系统提供的专门用来声明(定义)变量的词语。
变量必须先声明再使用
let 变量名;
变量赋值
变量名 = 数据;
更新变量
变量名 = 新数据;
# 变量的命名
JS中的变量是弱类型,可以保存所有类型的数据,即变量没有类型而值有类型。
命名规则:必须遵守,不遵守报错。
变量名不能使用关键字、也不建议使用保留字。
关键字:有特殊含义的字符,JavaScript 内置的一些英语词汇。
break do in typeof case else instanceof var catch export new void class extends return while const finally super with continue for switch yoield debugger function this default if throw delete import try 保留字:现在还不是关键字,但是未来可能成为关键字。
await interface protected static enum let private implements package public
变量名由
字母
、数字
、_
、$
组成,且不能以数字
开头。字母严格区分大小写,如 Age 和 age 是不同的变量。
命名规范:建议,不遵守不会报错,但不符合业内通识。
起名要有意义,见名知意。
遵守小驼峰命名法,增加代码可读性。
- 第一个单词首字母小写,后面每个单词首字母大写。例:userName。
# 变量提升
js在执行之前,会有js解析引擎(V8),先把代码解析一遍
完成那些事:
把变量的声明和函数的声明提升到当前作用域的最前端
变量的赋值和函数的调用还是保留在原来的位置
var a = 10 function fn(){ console.log(a) } fn() 预解析 var a function fn(){ console.log(a) } a=10 fn() 输出 10 ------------------- var a = 10 function fn(){ var a = 20 console.log(a) } fn() 预解析 var a function fn(){ var a a = 20 console.log(a) } a = 10 fn() 输出 20 ------------------- var a = 10 function fn(){ console.log(a) var a = 20 } fn() 预解析 var a function fn(){ var a console.log(a) a = 20 } a = 10 fn() 输出 undefined ------------------- fn() var a = 10 function fn(){ console.log(a) a = 20 } console.log(a) 预解析 var a function fn(){ console.log(a) a = 20 } fn() a = 10 console.log(a) 输出 undefined 10
f1() console.log(c) console.log(b) console.log(a) function f1(){ var a = b = c = 9 console.log(a) console.log(b) console.log(c) } 预解析 function f1(){ var a a = 9 b = 9 c = 9 console.log(a) console.log(b) console.log(c) } f1() console.log(c) console.log(b) console.log(a) 输出 9 9 9 9 9 未定义 not defined
← JavaScript起步 数据类型 →