一、JavaScript的变量分类。js内存为堆或栈
1、基本数据类型变量
a.number 整型
b.string 字符串类型
c.Boolean 布尔值类型
d.null 空
e.undefined 未定义类型
PS:基本数据类型存放在栈中
2、引用数据类型变量
object 对象
array 数组
function 函数
PS:引用数据类型存放在堆中
二、JavaScript中var、let、const的区别和使用
1、var定义变量
var定义的变量能够预解析,如果变量没有定义就直接使用的话,JavaScript回去解析这个变量,代码不会报错,只会输出undefine
var定义的变量可以反复去定义,当然后面的会覆盖前面的
var a=1;
var a=2;
var在循环中使用的时候,循环体外依然可以使用
var在整个函数内都是有效的,比如说在for循环内定义的一个var变量,实际上其在for循环以外也是可以访问的
<script>
for(var i=0;i<arr.length;i++){console.log(i);
}
console.log(i);
</script>
2、let声明变量
- let定义的变量不会预解析,必须先声明再使用,否则会报错
-
console.log(a) let a=2;
- let不能定义已经定义过的变量(无论之前是用var定义的还是let或者const定义的)
let已经被定义,不会被再次定义 - let是块级作用域,函数内部使用let定义后,对函数外部无影响,简单说就是在一个{}里面生效
-
let b=1; let b=2;
3、const定义变量
- const定义的变量不会预解析,必须先声明再使用,否则会报错
console.log(ccc)
const ccc=1;
- const定义的变量不允许修改
const aaa=5;
aaa=6;