JS标准库/数组API

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<a.length;i++){    只有三项

}

for(let key in a){   有四项。

}

伪数组:

原型链__proto__没有指向 Array.prototype,没有push方法。 arguments是伪数组(目前先接触这个)

function f(){
console.dir(arguments)

}        

执行f(1,2,3)会打印出来。  

数组API  forEach

 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)

    }

)

数组API  a.sort() (注意,sort会改变原值!!!!

快速排序。

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']   正序

数组API  a.join()

a = [1,2,3]

a.join('aa')  => "1aa2aa3"

在数组之间加东西变字符串。   a.join(',') =  a+''  = a.toString() = "1,2,3"

数组API  a.concat()

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地址指向不同

数组API a.map()

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

    })

数组API a.filter

a = [1,2,3,4,5,6,7]

a.filter( function (value, key){

return value >= 5

})      得到:[5,6,7]


数组API a.reduce

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

数组push

数组里扔东西   texts = []

for(i;;i++){  texts.push(nodes[i].textContent   )}

数组 textContent

获取字符串内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355