JS基礎(chǔ)總結(jié)

1 變量

2 === 與 ==

obj.a == null是obj.a === nul || obj.a === undefined簡寫

3 內(nèi)置函數(shù)


都可以使用new關(guān)鍵字

4 JSON

是一個js對象尚粘,也是一種數(shù)據(jù)格式
JSON.stringify({a:10,b:20})
JSON.parse("{'a':10,'b':20}")

5 如何判斷一個變量是數(shù)組類型

  • instanceof 用于判斷引用類型屬于哪個構(gòu)造函數(shù)的方法
  • Array.isArray(arr)
  • Object.prototype.toString.call(arr) === "[object Array]"

6 原型規(guī)則和事例

  • 所有的引用類型(數(shù)組、對象百炬、函數(shù)),都具有對象特性皆撩,即可以自由擴展屬性(除了null)
  • 所有的引用類型(數(shù)組锭魔、對象、函數(shù))辜羊,都有一個隱式原型proto屬性笋除,屬性值是一個普通的對象
  • 所有的函數(shù)斜友,都有一個顯示原型prototype屬性,屬性值也是一個普通對象
  • 所有的引用類型(數(shù)組垃它、對象鲜屏、函數(shù)),隱式原型proto屬性值指向它的構(gòu)造函數(shù)的顯示原型prototype屬性值,類似指針
  • 當試圖得到一個對象的某個屬性時国拇,如果這個對象本身沒有這個屬性洛史,那么會去它的proto(即它的構(gòu)造函數(shù)的prototype中尋找)

7 描述new一個對象的過程

  • 創(chuàng)建一個新對象
  • 將構(gòu)造函數(shù)的作用域給新對象(因此this指向了這個新對象)
  • 執(zhí)行構(gòu)造函數(shù)中的代碼(為這個新對象添加屬性)
  • 返回新對象

8 變量提升,提升了2個東西

  • 提升了變量定義
  • 提升了函數(shù)聲明(注意和函數(shù)表達式的區(qū)別)

9 執(zhí)行上下文

  • 變量提升時會涉及到執(zhí)行上下文的概念
  • 一段<script>或者一個函數(shù)都會生成一個執(zhí)行上下文
  • <script>會生成一個全局執(zhí)行上下文酱吝,執(zhí)行之前先提升變量定義也殖、函數(shù)聲明
  • 函數(shù)會生成一個函數(shù)執(zhí)行上下文,函數(shù)執(zhí)行(不是定義之前)之前先提升變量定義务热、函數(shù)聲明毕源、this、arguments
  • ps:注意“函數(shù)聲明“和“函數(shù)表達式“的區(qū)別

10 this幾種不同的使用場景

  • 作為構(gòu)造函數(shù)執(zhí)行
  • 作為對象屬性執(zhí)行
  • 作為普通函數(shù)執(zhí)行
  • call apply bind

this要在執(zhí)行時才能確認值陕习,定義時無法確認

11 創(chuàng)建10個<a>標簽,點擊的時候彈出來對應(yīng)的序號

// es6方法址愿,使用let
for (let index = 0; index < 10; index++) {
    var aTag = document.createElement("a");
    aTag.innerHTML = index + "<br>"
    aTag.addEventListener("click", function (e) {
        e.preventDefault();
        console.log(index);
    });
    document.body.appendChild(aTag);
};
// es5方法
var createElement = function (i) {
    var aTag = document.createElement("a");
    aTag.innerHTML = i + "<br>"
    aTag.addEventListener("click", function (e) {
        e.preventDefault();
        console.log(i);
    });
    return aTag
}
for (var i = 0; i < 10; i++) {
    var a = createElement(i);
    document.body.appendChild(a);
};

12 如何理解作用域

  • 自由變量该镣,當前作用域沒有定義的變量,即“自由變量”
  • 作用域鏈响谓,即自由變量的查找损合。當前作用域沒有定義這個變量省艳,會在這個函數(shù)定義時候的父級作用域繼續(xù)尋找這個變量,形成一個鏈式結(jié)構(gòu)
  • 閉包的兩個場景嫁审,閉包的主要作用是封裝變量跋炕,收斂權(quán)限,防止函數(shù)外部對變量進行修改
// 函數(shù)作為返回值
function F1() {
    var a = 100;
    return function () {
        console.log(a); // a是自由變量律适,在聲明時候的父級作用域?qū)ふ?    }
}
var f1 = F1();
var a = 200;
f1();
// 函數(shù)作為參數(shù)傳遞
function F1() {
    var a = 100;
    return function () {
        console.log(a); // a是自由變量辐烂,在聲明時候的父級作用域?qū)ふ?    }
}
function F2(fn) {
    var a = 200;
    fn();
}
var f1 = F1();
F2(f1);

js沒有塊級作用域,只有函數(shù)和全局作用域捂贿,ES6中新增了塊級作用域纠修,僅針對于let、const聲明的變量

13 同步和異步的區(qū)別是什么厂僧?分別舉一個例子

  • 同步會阻塞代碼執(zhí)行扣草,異步不會
  • alert是同步,setTimeout是異步

14 前端使用異步的場景

定時任務(wù):setTimeout颜屠,setInterval
網(wǎng)絡(luò)請求:ajax請求辰妙,動態(tài)<img>加載
事件綁定

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市甫窟,隨后出現(xiàn)的幾起案子密浑,更是在濱河造成了極大的恐慌,老刑警劉巖蕴坪,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肴掷,死亡現(xiàn)場離奇詭異,居然都是意外死亡背传,警方通過查閱死者的電腦和手機呆瞻,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來径玖,“玉大人痴脾,你說我怎么就攤上這事∈嵝牵” “怎么了赞赖?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冤灾。 經(jīng)常有香客問我前域,道長,這世上最難降的妖魔是什么韵吨? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任匿垄,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘椿疗。我一直安慰自己漏峰,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布届榄。 她就那樣靜靜地躺著浅乔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铝条。 梳的紋絲不亂的頭發(fā)上靖苇,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音攻晒,去河邊找鬼顾复。 笑死,一個胖子當著我的面吹牛鲁捏,可吹牛的內(nèi)容都是我干的芯砸。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼给梅,長吁一口氣:“原來是場噩夢啊……” “哼假丧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起动羽,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤包帚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后运吓,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體渴邦,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年拘哨,在試婚紗的時候發(fā)現(xiàn)自己被綠了谋梭。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡倦青,死狀恐怖瓮床,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情产镐,我是刑警寧澤隘庄,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站癣亚,受9級特大地震影響丑掺,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜述雾,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一吼鱼、第九天 我趴在偏房一處隱蔽的房頂上張望蓬豁。 院中可真熱鬧,春花似錦菇肃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至玩敏,卻和暖如春斗忌,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旺聚。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工织阳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人砰粹。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓唧躲,卻偏偏與公主長得像,于是被迫代替她去往敵國和親碱璃。 傳聞我的和親對象是個殘疾皇子弄痹,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353