1.js的数据类型,null 和 undefined的区别,原始数据类型和引用数据类型的对比
(1).String,Object,Number,Boolean,Undefined,Null
(2).undefined:表示缺少值,在使用var 声明变量但未对其加以初始化时,这个变量的值就是undefined。
null:表示没有对象,空对象
(3).
原始数据类型:String,Number,Boolean,Undefined,Null
引用数据类型:Object
1)值存储方式不同:
原始数据类型:将变量名和值都存储在栈内存中
引用数据类型:将变量名存储在栈内存中,将值存储在堆内存中,并在栈内存中存储值的地址,该地址指向堆内存中的值。
2)赋值方式不同:
原始数据类型:当a赋值与b,两个变量以后进行值改变不会相互影响
引用数据类型:a赋予b变量的是值地址,通过这个地址,两者指向的其实是堆内存中的同一个值,所以以后a,b任一变量对值进行改变,会直接影响另一个变量的值
2.let与var的区别
①var作用域为该语句所在的函数内,且存在变量提升;并且在函数外调用变量,不会报错,为undefined
②let作用域为该语句所在的代码块内,不存在变量提升;在函数外调用变量,会报错
例子:
{
let a = 125;
var b = 521;
}
a // Uncaught ReferenceError: a is not defined
b // 521
{
tmp='abc';//ReferenceError: tmp is not defined
let tmp;
test='11111';//11111
var test;
}