《JavaScript語言精粹》筆記

1.下面的值被當(dāng)作假(false)
false
null
undefined
空字符串 ' '
數(shù)字 0
數(shù)字 NaN
2.如果你嘗試檢索一個并不存在的成員屬性的值欲账,降返回undefined轿钠, ||運算符可以用來填充默認(rèn)值
var status = flight.status || 'unknown'
3.嘗試從undefined的成員屬性中取值會導(dǎo)致TypeError異常,這時可以通過&&運算符來避免錯誤
flight.equipment && flight.equipment.model
4.原型

原型連接在更新時時不起作用的涕滋。當(dāng)我們對某個對象做出改變時不會觸及改對象的原型睬辐。
原型只有在檢索值時候才被用到,如果我們嘗試去獲得對象的某個屬性值。但該對象沒有此屬性名,那么Javascript會試著從原型對象中獲取屬性值。如果那個原型對象也沒有該屬性,那么再從它的原型中尋找,以此類推,直到該過程最后到達(dá)終點
object.prototype侵俗。如果想要的屬性完全不存在于原型鏈中,那么結(jié)果就是undefined值,這個過程稱為委托。
原型關(guān)系是一種動態(tài)的關(guān)系,如果我們添加一個新的屬性到原型中,該屬性會基于該原型創(chuàng)建的對象可見丰刊。
stooge.professin=’actor’;
anther_stooge.profession //’actor’

5.hasOwnProperty方法不會檢查原型鏈
6.delete不會觸及原型鏈中的任何對象隘谣。刪除對象的屬性可能會讓來自原型鏈中的屬性透現(xiàn)出來:
another_stooge.nickname // 'Moe'
// 刪除 anther_stooge的nickname屬性,從而暴露出原型的nickname
delete another_stooge.nickname;
another_stooge.nickname // 'Curly'
7.所謂編程就是將一組需求分解成一組函數(shù)與數(shù)據(jù)結(jié)構(gòu)的技能啄巧。
8.函數(shù)對象

每個函數(shù)在創(chuàng)建時會附加兩個隱藏屬性:函數(shù)的上下文和實現(xiàn)函數(shù)行為的代碼。
每個函數(shù)對象在創(chuàng)建時也隨配有一個prototype屬性秩仆。它的值是一個擁有constructor屬性且值即為該函數(shù)的對象。這和隱藏連接到Function.prototype完全不同澄耍。

9.函數(shù)字面量

通過函數(shù)字面量創(chuàng)建的函數(shù)對象包含一個連接到外部上下文的連接噪珊。這被稱為閉包(closure)齐莲。

10.調(diào)用

每個函數(shù)除了聲明時定義的形式參數(shù),每個函數(shù)還接收兩個附加的參數(shù):this和arguments选酗。參數(shù)this的值取決于調(diào)用的模式。在JavaScript中有4種調(diào)用模式:

方法調(diào)用模式
函數(shù)調(diào)用模式
構(gòu)造器調(diào)用模式
apply調(diào)用模式
11.函數(shù)調(diào)用模式

當(dāng)一個函數(shù)并非一個對象的屬性時星掰,那么它就是被當(dāng)做一個函數(shù)來調(diào)用的:
var sum = add(3, 4)
以此模式調(diào)用函數(shù)時嫩舟,this被綁定到全局對象。這是語言設(shè)計上的一個錯誤家厌。倘若語言設(shè)計正確,那么當(dāng)內(nèi)部函數(shù)被調(diào)用時饭于,this應(yīng)該扔然綁定到外部函數(shù)的this變量蜀踏。這個設(shè)計錯誤的后果就是方法不能利用內(nèi)部函數(shù)來幫助它工作,因為內(nèi)部函數(shù)的this被綁定了錯誤的值掰吕,所以不能共享該方法對對象的訪問權(quán)果覆。幸運的是,有一個很容易的解決方案:如果該方法定義一個變量并給它賦值為this殖熟,那么內(nèi)部函數(shù)就可以通過那個變量訪問到this局待。按照約定,我把那個變量命名為that:

// 給myObject增加一個double方法
  myObject.double = function () {
    var that = this; // 解決方法
    var helper = function() {
        that.value = add(that.value, that.value)
     }
     helper(); //以函數(shù)的形式調(diào)用helper。 
   };
   // 以方法的形式調(diào)用double
  myObject.double();
  document.writeln(myObject.value); // 6 
12.apply調(diào)用模式

不是太明白

13.參數(shù)

arguments并不是一個真正的數(shù)組钳榨。它只是一個“類似數(shù)組(array-like)”的對象舰罚。argumengs擁有一個length屬性,但它沒有任何數(shù)組的方法薛耻。

14.返回

一個函數(shù)總是會返回一個值营罢,如果沒有指定返回值,則返回undefined饼齿。如果函數(shù)調(diào)用時在前面加上了new前綴饲漾,且返回值不是一個對象,則返回this(該新對象)

15.閉包

函數(shù)可以訪問它被創(chuàng)建時所處的上下文環(huán)境候醒,這被稱為閉包能颁。

16.級聯(lián)

讓方法返回this而不是undefined,就可以啟用級聯(lián)倒淫。

17.柯里化(哪些場景會用到呢伙菊?)

柯里化允許我們把函數(shù)與傳遞給的參數(shù)相結(jié)合,產(chǎn)生出一個新的函數(shù)敌土。
把多參數(shù)函數(shù)轉(zhuǎn)換為一些列單參數(shù)函數(shù)并進(jìn)行調(diào)用的技術(shù)

17.記憶

函數(shù)可以將先前操作的結(jié)果記錄在某個對象里镜硕,從而避免無謂的重復(fù)運算,這種優(yōu)化被稱為記憶返干。記憶是主要用于加速程序計算的一種優(yōu)化技術(shù)兴枯,它使得函數(shù)避免重復(fù)演算之前已被處理輸入,而返回已緩存的結(jié)果

18.繼承(待繼續(xù)研究)
20.數(shù)組

設(shè)置更大的length不會給數(shù)組分配更多的空間矩欠。而把length設(shè)小將導(dǎo)致所有下標(biāo)大于等于新length的屬性被刪除

21.正則表達(dá)式(待繼續(xù)研究)

可處理正則表達(dá)式的方法有

regexp.exec
regexp.test
string.match
string.replace
string.search
string.split
22.方法
Array
array.concat(item...)
array.join(separator)
array.pop()
array.push(item...)
array.reverse()
array.shift()
array.slice(start, end)
array.sort(comparefn)
array.splice(start, deleteCount,item...)
array.unshift(item...)

Function

function.apply(this.Arg, argArray)

Number

number.toExponential(fractionDigits)
number.toFixed(fractionDigits)
number.toPrecision(precision)
number.toString(radix)

Object

object.hasOwnProperty(name)

RegExp

regexp.exec(string)
regexp.test(string)

String

string.charAt(pos)
string.charCodeAt(pos)
string.concat(string...)
string.indexOf(searchString, position)
string.lastIndexOf(searchString, position)
string.localeCompare(that)
string.match(regexp)
string.replace(searchValue, replaceValue)
string.search(regexp)
string.slice(start, end)
string.split(separator, limit)
string.substring(start, end)
string.toLocaleLowerCase()
string.toLocaleUpperCase()
string.toLowerCase()
string.toUpperCase()
String.fromCharCode(char...)
21.優(yōu)美的特性

函數(shù)式頂級對象
給予原型繼承的動態(tài)對象
對象字面量和數(shù)組字面量

21.毒瘤

全局變量财剖。全局變量在所有作用域中都是可見的變量。
作用域癌淮。有函數(shù)作用域躺坟,沒有塊級作用域。
自動插入分號乳蓄。
typeof null 返回‘object’咪橙。
parseInt最好加上基數(shù),parseInt('08')和parseInt('09')返回0虚倒。
0.1+0.2不等于0.3美侦。
typeof NaN === 'number' // true。
偽數(shù)組

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末魂奥,一起剝皮案震驚了整個濱河市菠剩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌捧弃,老刑警劉巖擦囊,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瞬场,死亡現(xiàn)場離奇詭異涧郊,居然都是意外死亡,警方通過查閱死者的電腦和手機彤灶,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門幌陕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來汽煮,“玉大人,你說我怎么就攤上這事心例⌒遥” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵译株,是天一觀的道長古戴。 經(jīng)常有香客問我矩肩,道長肃续,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任刽酱,我火速辦了婚禮棵里,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘殿怜。我一直安慰自己,他們只是感情好骏掀,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布截驮。 她就那樣靜靜地躺著际度,像睡著了一般。 火紅的嫁衣襯著肌膚如雪坡锡。 梳的紋絲不亂的頭發(fā)上块请,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天墩新,我揣著相機與錄音,去河邊找鬼绵疲。 笑死,一個胖子當(dāng)著我的面吹牛臣疑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播郁岩,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼问慎,長吁一口氣:“原來是場噩夢啊……” “哼挤茄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起笼恰,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逼龟,沒想到半個月后猴仑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡疾渣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年榴捡,在試婚紗的時候發(fā)現(xiàn)自己被綠了朱浴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡项乒,死狀恐怖檀何,靈堂內(nèi)的尸體忽然破棺而出廷支,到底是詐尸還是另有隱情,我是刑警寧澤恋拍,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布施敢,位于F島的核電站,受9級特大地震影響羡藐,放射性物質(zhì)發(fā)生泄漏悯许。R本人自食惡果不足惜辉阶,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垃僚。 院中可真熱鬧,春花似錦栽燕、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仰猖。三九已至,卻和暖如春饥侵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背躏升。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盗温,地道東北人成肘。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓双霍,卻偏偏與公主長得像砚偶,于是被迫代替她去往敵國和親染坯。 傳聞我的和親對象是個殘疾皇子丘逸,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,106評論 0 21
  • JavaScript語言精粹 前言 約定:=> 表示參考相關(guān)文章或書籍; JS是JavaScript的縮寫深纲。 本書...
    微笑的AK47閱讀 578評論 0 3
  • 語法 1.數(shù)字 a. javascript只有一種數(shù)字類型,表示64位的浮點數(shù)儒喊,避免了短整型的溢出問題。1和1.0...
    theCoder閱讀 198評論 0 1
  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)侨颈,也就是一...
    悟名先生閱讀 4,132評論 0 13
  • 紙:寶虹中粗 筆:秀意芯义、松枝 顏料:MG
    青巷水彩閱讀 454評論 5 12