成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS高級(jí)程序設(shè)計(jì)(4-5章)-筆記

MycLambert / 2272人閱讀

摘要:寫在前面本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括第章變量作用域和內(nèi)存問題對(duì)象是按引用傳遞的我理解的是傳值其實(shí)傳的是一個(gè)指針,該指針指向內(nèi)存中的某個(gè)對(duì)象。

寫在前面

本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括

第4章 變量、作用域和內(nèi)存問題

對(duì)象是按引用傳遞的(我理解的是傳值其實(shí)傳的是一個(gè)指針,該指針指向內(nèi)存中的某個(gè)對(duì)象)。舉例如下:

const a = {name: "aaa"}
const b = a // 這時(shí)候a和b其實(shí)指向的是同一個(gè)對(duì)象
console.log(b.name)  // aaa
b.name = "bbb"
console.log(b.name)  // bbb
console.log(a.name)  // bbb 在改變b時(shí)a也被改變了

對(duì)于簡(jiǎn)單的對(duì)象(屬性的值都為基本數(shù)據(jù)類型),賦值時(shí)采用const b = {...a}或者const b = Object.assign({}, a)可以使得b中的對(duì)象是一個(gè)新對(duì)象

Lodash提供了cloneDeep()函數(shù)用于深拷貝

對(duì)象按引用傳遞是因?yàn)檫@樣比較節(jié)約內(nèi)存(畢竟多個(gè)對(duì)象其實(shí)只存了一份嘛),弊端就是容易引起不被希望的變化。

JS具有自動(dòng)垃圾回收機(jī)制,開發(fā)人員不用關(guān)心內(nèi)存使用問題,其原理是找出不再繼續(xù)使用的變量,釋放其占用的內(nèi)存

最常用的回收方式是標(biāo)記清除,另一個(gè)不太常見的是引用計(jì)數(shù)

引用計(jì)數(shù)中,無法處理循環(huán)引用(對(duì)象a中包含指向b的指針,對(duì)象b中也包含指向a的指針),舉例如下

function problem() {
    const a = {}
    const b = {}
    a.obj = b
    b.obj = a
}

可以通過在函數(shù)結(jié)尾斷開引用來解決循環(huán)引用的問題,如下

function problem() {
    const a = {}
    const b = {}
    a.obj = b
    b.obj = a
    // 別的啥啥操作
    
    // 設(shè)為null即可
    a.obj = null
    b.obj = null
}

優(yōu)化內(nèi)存占用:無用的數(shù)據(jù)將其值設(shè)為null

第5章 引用類型

引用類型的值(對(duì)象)是引用類型的一個(gè)實(shí)例

新對(duì)象是new操作符后面跟一個(gè)構(gòu)造函數(shù)來創(chuàng)建的

數(shù)組的sort()方法默認(rèn)是按從小到大排序,會(huì)根據(jù)每一項(xiàng)的toString()方法得到的字符串進(jìn)行排序。由于是比較的是字符串,在大多數(shù)情況下,排序結(jié)果不是我們期望的(比如"10"<"5"),我們需要自己去寫一個(gè)排序函數(shù)傳給sort()

數(shù)組的concat()可以接受多個(gè)參數(shù),如下

const a = [1, 2]
const b = a.concat(3, [4, 5])
console.log(b) // [1, 2, 3, 4, 5]

數(shù)組的splice()用于在數(shù)組中插入一個(gè)或者多個(gè)值,如下

const a = [1, 4, 5]
a.splice(1, 0, 2, 3) // 接收的參數(shù)依次為 index,要?jiǎng)h除的元素個(gè)數(shù),要插入的元素們
console.log(a) // [1, 2, 3, 4, 5]

所以數(shù)組的splice()也可用于替換數(shù)組中的某些項(xiàng),如下

const a = [1, 2, 3, 4, 5]
a.splice(1, 2, 22, 33)
console.log(a) // [1, 22, 33, 4, 5]

由于函數(shù)也是對(duì)象,所以函數(shù)名其實(shí)是一個(gè)指向函數(shù)對(duì)象的指針

定義一個(gè)函數(shù)可以用函數(shù)聲明 function funcName() {}或者函數(shù)表達(dá)式 const func = function() {}, 建議用函數(shù)表達(dá)式定義函數(shù),好處是定義之后不可被修改,也不會(huì)存在函數(shù)聲明提升

函數(shù)內(nèi)部有兩個(gè)特殊對(duì)象,argumentsthis,arguments是一個(gè)類數(shù)組對(duì)象,包含著所有傳入函數(shù)中的參數(shù),this指向的是函數(shù)執(zhí)行的環(huán)境對(duì)象

字符串的toLocaleLowerCase()是針對(duì)地區(qū)作了特殊處理的(不同地區(qū)對(duì)于某些值的轉(zhuǎn)換規(guī)則會(huì)有些不一樣),相對(duì)于toLowerCase()來說更安全

完。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/89134.html

相關(guān)文章

  • JS高級(jí)程序設(shè)計(jì)(1-3)-筆記

    摘要:寫在前面本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括。再就是畫圖這種。與瀏覽器沒有依賴關(guān)系。 寫在前面 本文記錄的是我不熟悉或者我認(rèn)為值得注意的地方,并不是書上知識(shí)點(diǎn)的概括。 第1章 JavaScript簡(jiǎn)介 JS誕生時(shí)間:1995年(好年輕...) JS誕生背景:表單數(shù)據(jù)合法性由服務(wù)端驗(yàn)證的用戶體驗(yàn)不好,希望能在客戶端進(jìn)行驗(yàn)證 JS現(xiàn)在用處:如果沒有...

    Cristic 評(píng)論0 收藏0
  • 《JavaScript高級(jí)程序設(shè)計(jì)》(第3版)讀書筆記 第1~2

    摘要:表示應(yīng)該立即下載腳本,但不應(yīng)妨礙頁面中的其他操作可選。表示通過屬性指定的代碼的字符集。表示腳本可以延遲到文檔完全被解析和顯示之后再執(zhí)行。實(shí)際上,服務(wù)器在傳送文件時(shí)使用的類型通常是,但在中設(shè)置這個(gè)值卻可能導(dǎo)致腳本被忽略。 第1章 JavaScript 簡(jiǎn)介 雖然JavaScript和ECMAScript通常被人們用來表達(dá)相同的含義,但JavaScript的含義比ECMA-262要多得多...

    Corwien 評(píng)論0 收藏0
  • <javascript高級(jí)程序設(shè)計(jì)>第十二讀書筆記----偏移量

    摘要:包括元素的高度上下內(nèi)邊距上下邊框值,如果元素的的值為那么該值為。該值為元素的包含元素。最后,所有這些偏移量都是只讀的,而且每次訪問他們都需要重新計(jì)算。為了避免重復(fù)計(jì)算,可以將計(jì)算的值保存起來,以提高性能。 offsetHeight 包括元素的高度、上下內(nèi)邊距、上下邊框值,如果元素的style.display的值為none,那么該值為0。offsetWidth 包括元素的寬度、左...

    dayday_up 評(píng)論0 收藏0
  • Ajax與Comet-JavaScript高級(jí)程序設(shè)計(jì)第21讀書筆記(1)

    摘要:技術(shù)的核心是對(duì)象即。收到響應(yīng)后,響應(yīng)的數(shù)據(jù)會(huì)自動(dòng)填充對(duì)象的屬性,相關(guān)的屬性有作為響應(yīng)主體被返回的文本。收到響應(yīng)后,一般來說,會(huì)先判斷是否為,這是此次請(qǐng)求成功的標(biāo)志。中的版本會(huì)將設(shè)置為,而中原生的則會(huì)將規(guī)范化為。會(huì)在取得時(shí)報(bào)告的值為。 Ajax(Asynchronous Javascript + XML)技術(shù)的核心是XMLHttpRequest對(duì)象,即: XHR。雖然名字中包含XML,但...

    imingyu 評(píng)論0 收藏0
  • ApacheCN 人工智能知識(shí)樹 v1.0

    摘要:貢獻(xiàn)者飛龍版本最近總是有人問我,把這些資料看完一遍要用多長(zhǎng)時(shí)間,如果你一本書一本書看的話,的確要用很長(zhǎng)時(shí)間。為了方便大家,我就把每本書的章節(jié)拆開,再按照知識(shí)點(diǎn)合并,手動(dòng)整理了這個(gè)知識(shí)樹。 Special Sponsors showImg(https://segmentfault.com/img/remote/1460000018907426?w=1760&h=200); 貢獻(xiàn)者:飛龍版...

    劉厚水 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<