0. JS的内存分区
1.基础类型---放在栈里的
undefined、null、boolean、string、number
2.引用类型---地址放在栈里,内容放在堆里
对象:var a = new Object(); 或 var a = {};
数组:var b = new Array(); 或 var b = [];
函数:var c = new Function(){}; 或 function c(){};
日期:var d = new Date()
正则:
3.引用类型---高级类型---ES6
Map:特殊的对象,键可以是任意值,查找速度贼快--是个二维数组
var m = new Map():
m.get() m.set('key', val) m.has('key') m.delete('key');
Set:键不重复,没有值的对象
var s = new Set([1, 2, 3, 3, '3']);
//Set{1,2,3,'3'}
4.引用类型---可遍历类型---iterable---ES6
Array、Object、Map和Set都是可遍历的类型,都属于iterable
4.1 for...in...遍历iterable---遍历的是key---不常用
for...in... 遍历的是key,很早之前用
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x in a) {
console.log(x); // '0', '1', '2', 'name'
}
4.2 for...of... 遍历iterable---遍历的是value---不太常用
var a = ['A', 'B', 'C'];
a.name = 'Hello';
for (var x of a) {
console.log(x); // 'A', 'B', 'C'
}
4.3 iterable.forEach() 遍历iterable---遍历的是(key+value+iterable)---ES5.1---常用
iterable.forEach(function (value, index, iterable) {
// value: 值
// index: 索引
// iterable: 指向iterable对象本身
return (value, index, iterable)
});