js
1.数据类型
基本数据类型:string number boolean null nuderfind bigInt symbol
引用数据类型:obj array
1.1基本数据类型和引用数据类型的区别?
->基本数据类型数值存在栈里面
vara=10;b=a;
varb=20;
console.log(a)//10
console.log(b)//20
栈中简单数据段,数据大小确定,内存大小可以分配,它们是直接按值存放,可以直接按值访问。
引用数据类型 名字存在栈里面 值存在堆里面
两个引用数据类型指向同一个堆内存对象,修改a的值就是修改那个对象,所以通过b也可以访问到。
varobj1=newObject();
varobj2=obj1;
obj2.name='我有名字了';
console.log(obj1)//我有名字了
1.2数据检测类型
typeof 检测数据类型的逻辑运算符
instanceof检测是否为类的实例
leta=typeoftypeoftypeof[12,23]
console.log(a)
typeof[12,23]//object
typeof"Object"//String
typeof"String"//String
使用typeof判断数据类型时 对于null ,[ ] ,{ } 的数据类型判断都是object ,使用typeof运算符时采用引用类型存值时,无论引用是什么类型的对象,他都放回object
object 总共返回6中数据类型 number string undefined Symbol(符号) object function
instanceof 检测 返回值是true和false
1.3 null和undefined 的区别
(1)类型不相等
typeofundefined;//undefined
typeofnull//object
null===undefined//false
null==undefined//true
(2)null可以看做是一个空的变量 undefined看作是空的变量
undefined 未被赋值变量的默认值
null 表示一个变量将来可能指向一个对象,一般用于主动释放指向对象的引用;保存对象的变量还没有真正的保存对象,就应该明确让该变量保存null值。
null 是不存在
undefined错误 不明确 未定义
垃圾回收站:专门释放对象内存的一个程序
// 变量声明了,但没有赋值
var i;
i// undefined
// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
functionf(x) {
returnx;
}
f()// undefined
// 对象没有赋值的属性
varo=newObject();
o.p// undefined
// 函数没有返回值时,默认返回 undefined
functionf() {}
f()// undefined
2.this