变量是由两部分构成的:
变量名称:一般来说 ,赋值符号的左边的就是变量名
变量的值:一般来说,赋值符号的右边就是变量的值。
声明变量
在js中,使用var关键字来声明一个变量
方式:
1.单独声明:一次声明一个变量,每一个变量都需要使用var
如:var a =1;
var b =2
2. 一次性声明多个:中间用逗号隔开。
var x=100,y=200,z=300;
3. 重复声明:如果有赋值,后面的值是变量的最终的值。
var a="小明"
var a="小强"
4. 遗漏声明:没有var 同时在前面的代码中也没有声明过。
a="js"
全局变量和局部变量。
全局和局部的分界点是:函数。
全局的在函数内部和外部都可以访问,但是局部的只能在函数内部访问。
总是使用var来声明一个变量
变量要先声明后使用。
数据类型:
针对不同的数据,分配不同的内存空间---->为了合理使用内存空间。
1.基本数据类型:(栈区)
number ,string,boolean,undefined,null
2. 引用数据类型:(堆区)
object(array,function)
JS代码的解析与执行:
1,代码块可以有多个,上面的代码块不能使用下面的代码块中的数据,下面代码块可以使用上面代码块中的数据。
2,预编译,在Js代码真正执行这前有一个预编译的过程
提升: 提升变量: 提升代码块的最前面
提升函数:
执行:
3,变量提升 var变量可以提升,没有var的变量是不会提升的 循环变量也可以提升 函数内部加var的变量也会提升,提升到了函数内部的最前面
4,提升函数 函数声明也会提升,提升到代码块的最前面 函数表达式不会提升,原因函数表达式本质是一个变量
ES6中对定义变量的扩展,使用let const
let :
与var类似,用来定义变量
区别:
- 块级作用域。
- let没有变量提升的现象
- 不会成为window对象的属性
- 暂时性死区(TDZ)
- 不能重复声明
const:
声明常量,值不能改变。
特点:
- 定义完后,不能修改值(基本数据类型,也可能是地址)
- 不能重复声明
- 没有提升
- 声明时必须赋值