觀阮一峰老師js教程筆記

1. js中并不是所有值都是對象
  • 基本數(shù)據(jù)類型不是對象,沒有方法和屬性
    ??方法:是某個特定對象才能調(diào)用的函數(shù)
    ??屬性:是隸屬于某個特定對象的變量
    ??對象:是一種字包含的數(shù)據(jù)類型
2. JavaScript與ECMAScript的關(guān)系
  • ECMAScript和JavaScript的關(guān)系是岩睁,前者是后者的規(guī)格,后者是前者的一種實現(xiàn)纵散。在日常場合,這兩個詞是可以互換的隐圾。
2.1基本語法
  • 變量提升:就是所有的變量的聲明語句伍掀,都會被提升到代碼的頭部
  • for循環(huán)和while循環(huán)相同
  • 三元運算符(條件) ? 表達(dá)式1 : 表達(dá)式2可視為if...else的簡寫
  • do...while循環(huán)不管條件是否為true至少執(zhí)行一次
  • continue語句用于立即終止本輪循環(huán),返回循環(huán)結(jié)構(gòu)的頭部暇藏,開始下一輪循環(huán)
  • break用于直接跳出循環(huán)或代碼塊
2.2數(shù)據(jù)類型
  • typeof null返回object
  • if語句中undefinednull都會轉(zhuǎn)為false
  • null是一個表示“空”的對象硕盹,轉(zhuǎn)為數(shù)值時為0;
  • undefined是一個表示”此處無定義”的原始值叨咖,轉(zhuǎn)為數(shù)值時為NaN。
  • 轉(zhuǎn)換規(guī)則是除了下面六個值被轉(zhuǎn)為false啊胶,其他值都視為true甸各。
    undefined
    null
    false
    0
    NaN
    "或''(空字符串)
2.3數(shù)值
  • js中所有數(shù)字都是64位雙精度浮點數(shù)
  1. 第1位:符號位,0表示正數(shù)焰坪,1表示負(fù)數(shù)
  2. 第2位到第12位(共11位):指數(shù)部分
  3. 第13位到第64位(共52位):小數(shù)部分(即有效數(shù)字)
  • 絕對值小于等于2的53次方的整數(shù)趣倾,即2-53到253,都可以精確表示某饰。
  • 數(shù)值的進(jìn)制

十進(jìn)制:沒有前導(dǎo)0的數(shù)值儒恋。
八進(jìn)制:有前綴0o或0O的數(shù)值,或者有前導(dǎo)0黔漂、且只用到0-7的八個阿拉伯?dāng)?shù)字的數(shù)值诫尽。
十六進(jìn)制:有前綴0x或0X的數(shù)值。
二進(jìn)制:有前綴0b或0B的數(shù)值炬守。

  • parseInt方法用于將字符串轉(zhuǎn)為整數(shù)牧嫉。
  1. 如果parseInt的參數(shù)不是字符串,則會先轉(zhuǎn)為字符串再轉(zhuǎn)換减途。
  2. 字符串轉(zhuǎn)為整數(shù)的時候酣藻,是一個個字符依次轉(zhuǎn)換,如果遇到不能轉(zhuǎn)為數(shù)字的字符鳍置,就不再進(jìn)行下去辽剧,返回已經(jīng)轉(zhuǎn)好的部分。
    3.如果以0x開頭會照16進(jìn)制解析
    4如果以0開頭會以10進(jìn)制解析
  3. parseInt方法還可以接受第二個參數(shù)(2到36之間)税产,表示被解析的值的進(jìn)制
  4. 如果第一個參數(shù)不是字符串怕轿,"0x11"寫成0x11則會先轉(zhuǎn)換為10進(jìn)制偷崩,在進(jìn)行第二個參數(shù)的轉(zhuǎn)換
    -isNaN()
  • isNaN()可以用來判斷一個值是否為NaN。
  • isNaN只對數(shù)值有效撤卢,如果傳入其他值环凿,會被先轉(zhuǎn)成數(shù)值。相當(dāng)于isNaN(Number('xxx'))
2.4字符串
  1. 字符串只能寫在一行內(nèi)放吩,如果要分成多行智听,每一行末尾加上\和換行符
  2. 反斜杠(\)在字符串內(nèi)有特殊含義,用來表示一些特殊字符渡紫,所以又稱為轉(zhuǎn)義符到推。
  3. 字符串可視為字符數(shù)組可以使用[]運算符返回某個位置的字符
    反斜杠\有3種特殊的用法:
  • \HHH
    反斜杠后面緊跟三個八進(jìn)制數(shù)(000到377),代表一個字符惕澎。HHH對應(yīng)該字符的 Unicode 碼點莉测,比如\251表示版權(quán)符號。顯然唧喉,這種方法只能輸出256種字符捣卤。
  • \xHH
    \x后面緊跟兩個十六進(jìn)制數(shù)(00到FF),代表一個字符八孝。HH對應(yīng)該字符的 Unicode 碼點董朝,比如\xA9表示版權(quán)符號。這種方法也只能輸出256種字符干跛。
  • \uXXXX
    \u后面緊跟四個十六進(jìn)制數(shù)(0000到FFFF)子姜,代表一個字符。HHHH對應(yīng)該字符的 Unicode 碼點楼入,比如\u00A9表示版權(quán)符號哥捕。
  1. 字符集
  • 每個字符在javascript中都以16位(2個字節(jié))的utf-16格式儲存
  • JavaScript 使用 Unicode 字符集。JavaScript 引擎內(nèi)部嘉熊,所有字符都用 Unicode 表示遥赚。
  • 由于歷史原因,對于碼點在U+10000到U+10FFFF之間的字符记舆,JavaScript 總是認(rèn)為它們是兩個字符
  1. Base64 轉(zhuǎn)碼
  • 文本有不可打印的符號可以使用base64轉(zhuǎn)碼
  • btoa():任意值轉(zhuǎn)為 Base64 編碼
    atob():Base64 編碼轉(zhuǎn)為原來的值
  • 必須是ASCII 碼的字符
2.5對象
  • 對象就是hash鸽捻,就是一組“鍵值對”(key-value)的集合,是一種無序的復(fù)合數(shù)據(jù)集合泽腮。
  • 對象中所有的key(鍵名)的都是字符串,如果是數(shù)值會自動轉(zhuǎn)換為字符串
  • 如果key不符合標(biāo)識符的條件御蒲,(比如第一個字符為數(shù)字,或者含有空格或運算符且也不是數(shù)字)诊赊,必須加上引號
  • key也叫屬性厚满,如果value為函數(shù),那么通常把這個屬性稱為“方法”碧磅,如果屬性的值還是一個對象碘箍,就形成了鏈?zhǔn)揭谩?/li>
  • 如果只采用大括號遵馆。JavaScript 規(guī)定,如果行首是大括號丰榴,一律解釋為語句(即代碼塊)货邓,如果想表達(dá)對象則要咋在外加上圓括號({a:123})
  • 讀取屬性obj.p或者obj['p'] 如果不加引號則指向一個變量
  • 查看對象的所有屬性Object.keys
    -delete命令可以刪除對象的屬性,刪除不存在的屬性也會返回true四濒,不能刪除繼承的屬性
  • in運算符檢查某個對象是否包含某個屬性(key) (不能識別是否為繼承的换况,都會返回true)
  • for(...in...){}用于遍歷對象的全部屬性
  • with 語句用來批量操作同一個對象的多個屬性(如果with區(qū)塊內(nèi)部有變量的賦值操作,必須是當(dāng)前對象已經(jīng)存在的屬性盗蟆,否則會生成一個全局變量)
2.6數(shù)組
  • 數(shù)組其實是固定key的對象(hash)戈二,key['0'],['1'],['2'].['3'],['4']...都是字符串
  • 數(shù)組的length是其中最大key+1,不是其中的個數(shù)
  • 當(dāng)數(shù)組的某個元素是空元素喳资,即2個逗號之間沒有任何值觉吭,我們稱改數(shù)組存在空位
  • 空位不會影響length屬性,空位是可讀取的仆邓,返回undefined鲜滩,delete命令刪除某個屬性,這個位置就形成了空位
  • 空位就是數(shù)組沒有這個元素节值,所以不會被遍歷到绒北,而undefined則表示數(shù)組有這個元素,值是undefined察署,所以遍歷不會跳過。
  • 類似數(shù)組的對象峻汉,特征是具有l(wèi)enght屬性贴汪,length不是動態(tài)的
  • 可以使用var arr = Array.prototype.slice.call(arrayLike)把對象變成真正的數(shù)組
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市休吠,隨后出現(xiàn)的幾起案子扳埂,更是在濱河造成了極大的恐慌,老刑警劉巖瘤礁,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件阳懂,死亡現(xiàn)場離奇詭異,居然都是意外死亡柜思,警方通過查閱死者的電腦和手機(jī)岩调,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赡盘,“玉大人号枕,你說我怎么就攤上這事≡上恚” “怎么了葱淳?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵钝腺,是天一觀的道長。 經(jīng)常有香客問我赞厕,道長艳狐,這世上最難降的妖魔是什么痰驱? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任滓玖,我火速辦了婚禮,結(jié)果婚禮上控嗜,老公的妹妹穿的比我還像新娘唁毒。我一直安慰自己蒜茴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布浆西。 她就那樣靜靜地躺著粉私,像睡著了一般。 火紅的嫁衣襯著肌膚如雪近零。 梳的紋絲不亂的頭發(fā)上诺核,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機(jī)與錄音久信,去河邊找鬼窖杀。 笑死,一個胖子當(dāng)著我的面吹牛裙士,可吹牛的內(nèi)容都是我干的入客。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼腿椎,長吁一口氣:“原來是場噩夢啊……” “哼桌硫!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起啃炸,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤铆隘,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后南用,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膀钠,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年裹虫,在試婚紗的時候發(fā)現(xiàn)自己被綠了肿嘲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡筑公,死狀恐怖睦刃,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情十酣,我是刑警寧澤涩拙,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布际长,位于F島的核電站,受9級特大地震影響兴泥,放射性物質(zhì)發(fā)生泄漏工育。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一搓彻、第九天 我趴在偏房一處隱蔽的房頂上張望如绸。 院中可真熱鬧,春花似錦旭贬、人聲如沸怔接。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扼脐。三九已至,卻和暖如春奋刽,著一層夾襖步出監(jiān)牢的瞬間瓦侮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工佣谐, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留肚吏,地道東北人。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓狭魂,卻偏偏與公主長得像罚攀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子雌澄,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345