1、六种数据类型
六种数据类型 | |
数值 | Number |
字符串 | String |
布尔 | Boolean |
空 | null |
未定义 | Undefined |
对象(引用) | Object |
2、引用类型
Object类型 | |
数组 | Array |
日期 | Date |
数学 | Math |
函数 | Fnction |
正则 | RegExp |
3、原始类型与引用类型的区别
原始类型与引用类型 | 区别 |
赋值 | 原始类型赋值,引用类型引用 |
比较 | 原始类型比较数值,引用类型比较引用是否指向同一个对象 |
传参 | 原始类型传参(函数里面的值不会影响外面的值),引用类型传参(函数里面的值影响外面的值) |
// 1、原始类型(栈内存) var str1 = 'hello'; var str2 = 'world'; str1 = 'jasmine'; console.log(str1); // 输出结果:jasmine console.log(str2); // 输出结果:world // 2、引用类型(堆内存) var obj1 = { name: 'jasmine' }; var obj2 = obj1; obj2.name = 'jasmine_qiqi'; console.log(obj1.name); // 输出结果:jasmine_qiqi console.log(obj2.name); // 输出结果:jasmine_qiqi // 3、比较区别 var str1 = 'hello'; var str2 = 'hello'; console.log(str1 === str2); // 输出结果:true var obj1 = { name: 'jasmine' }; var obj2 = { name: 'jasmine' }; console.log(obj1 === obj2); // 输出结果:false // 4、原始类型传参区别(函数里面的值不会影响外面的值) function fn(name) { name = 'qiqi'; console.log(name); } var name = 'jasmine'; fn(name); // 输出结果:qiqi console.log(name); // 输出结果:jasmine // 5、引用类型传参区别(函数里面的值影响外面的值) function fun(obj) { obj.name = 'qiqi'; console.log(obj.name); } var obj = { name: 'jasmine' }; fun(obj); // 输出结果:qiqi console.log(obj.name); // 输出结果:qiqi
4、类型检测(typeof、instanceof
// 1、类型检测(typeof) var num = 100; // 输出结果:number var name = 'jasmine'; // 输出结果:string var un; // 输出结果:undefined var bool = true; // 输出结果:boolean var aaa = null; // 输出结果:object(bug) var arr = [1, 2, 3]; // 输出结果:object var reg = /123/; // 输出结果:object let data = new Date(); // 输出结果:object // 2、类型检测(instanceof) console.log(arr instanceof Array); // 输出结果:true console.log(reg instanceof RegExp); // 输出结果:true console.log(data instanceof Date); // 输出结果:true console.log(data instanceof Object); // 输出结果:true
5、类型检测(typeof、instanceof)
// 1、类型检测(typeof) var num = 100; // 输出结果:number var name = 'jasmine'; // 输出结果:string var un; // 输出结果:undefined var bool = true; // 输出结果:boolean var aaa = null; // 输出结果:object(bug) var arr = [1, 2, 3]; // 输出结果:object var reg = /123/; // 输出结果:object let data = new Date(); // 输出结果:object // 2、类型检测(instanceof) console.log(arr instanceof Array); // 输出结果:true console.log(reg instanceof RegExp); // 输出结果:true console.log(data instanceof Date); // 输出结果:true console.log(data instanceof Object); // 输出结果:true