JS内存有stack、heap。stack中有global/window对象,其是一个hash。其中有标准库(object、string、number等)
new Object(1) 和 Object(1)没什么区别 但是String(1)和new String(1)不同
let f = ['1', '2'] 等价于 let f = new Array('1','2')
var a = Array(3) length = 3. var a = Array(3,3) {0:3, 1:3 ,length:2}
第一类 基本类型Number, String,Boolean.
Number() => 基本类型 new Number() => 对象
第二类 复杂对象Object(包括Array,Function)
Object() => 对象 new Object() => 对象 加不加new一样
var f = function(a,b){return a+b} 等价于 var f = (new)Function('a', 'b', 'return a+b') 奇葩。。
数组Array
var a = [1,2,3] ; a.xxx = 'xxx' 也可以,但是a.length还是为3
for(let i=0; i } for(let key in a){ 有四项。 } 原型链__proto__没有指向 Array.prototype,没有push方法。 arguments是伪数组(目前先接触这个) function f(){ } 执行f(1,2,3)会打印出来。 a = ['a', 'b', 'c'] a.forEach(function(x,y){ console.log('value', x) console.log('key',y) } ) 打印出 所有value 和 key 也可以只一个 a.forEach(function (item) { console.log('item', item) } ) 快速排序。 a = [] a.sort( function(x,y){return x-y} ) 升序 a.sort( function(x,y){return x-y} ) 降序 hash = { 'a': 100, 'b': 300, 'c':200 } a.sort( function(x,y){ return hash[x] -hash[y] } ) 结果: ['a', 'c', 'b'] 正序 a = [1,2,3] a.join('aa') => "1aa2aa3" 在数组之间加东西变字符串。 a.join(',') = a+'' = a.toString() = "1,2,3" a = [1,2] b = [3,4] 常规用法: a.concat(b) => a = [1,2,3,4] var b = a.concat([]) b = [1,2] a===b -> false 新开辟了一块内存,stack中a、b地址指向不同 a.forEach 和 a.map功能上一样,但是a.map有返回值 (除了遍历,还会收集)以前多少项,新数组多少项。也可以返回对象 a = [1,2,3] a.map(function (value, ket){ return value*2 }) 或者箭头函数形式: a.map(value => value*x) 与上面等同 注意这是隐式返回(我不太喜欢 示例2: let array = messages.map((item) => { return item.attributes }) a = [1,2,3,4,5,6,7] a.filter( function (value, key){ return value >= 5 }) 得到:[5,6,7] https://www.cnblogs.com/alex1504/p/10993538.html https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce arguments、DOM API elements 数组里扔东西 texts = [] for(i;;i++){ texts.push(nodes[i].textContent )} 获取字符串内容伪数组:
console.dir(arguments)数组API forEach
数组API a.sort() (注意,sort会改变原值!!!!
数组API a.join()
数组API a.concat()
另一个好用法->深拷贝生成新数组。
数组API a.map()
数组API a.filter
数组API a.reduce
伪数组
数组push
数组 textContent