學(xué)習(xí)web前端會(huì)涉及到很多知識(shí),其中js就是基礎(chǔ)篇中比較常見(jiàn)的,那么本期小編就為大家詳細(xì)的介紹一下web前端培訓(xùn)分享:JS基礎(chǔ)知識(shí)整理。
web前端培訓(xùn)分享:JS基礎(chǔ)知識(shí)整理
1 、執(zhí)行環(huán)境:有時(shí)也叫環(huán)境,是JavaScript 中最為重要的一個(gè)概念,執(zhí)行環(huán)境定義了變量或函數(shù)有權(quán)訪問(wèn)的其他數(shù)據(jù)。
2 、變量對(duì)象:每一個(gè)執(zhí)行環(huán)境都有一個(gè)與之關(guān)聯(lián)的變量對(duì)象,環(huán)境中定義的所有的變量和函數(shù)都保存在這個(gè)的對(duì)象中。
3 、作用域鏈:代碼在環(huán)境中執(zhí)行時(shí),會(huì)創(chuàng)建變量對(duì)象的作用域鏈,保證對(duì)執(zhí)行環(huán)境有權(quán)訪問(wèn)的所有變量和函數(shù)的有序訪問(wèn)。作用域鏈的前端,始終是當(dāng)前執(zhí)行代碼所在環(huán)境的變量對(duì)象。
4 、活動(dòng)對(duì)象:如果當(dāng)前執(zhí)行環(huán)境是函數(shù),則將活動(dòng)對(duì)象作為變量對(duì)象。
5 、可執(zhí)行代碼:
1) 全局代碼:例如加載外部的JS 文件或者本地標(biāo)簽內(nèi)的代碼,全局代碼不包括 function 體內(nèi)的代碼;
2) 函數(shù)代碼:function 體內(nèi)的代碼;
3)eval 代碼:eval() 函數(shù)計(jì)算某個(gè)字符串,并執(zhí)行其中的JS 代碼,比如eval("alert('hello world')") 。
6 、執(zhí)行上下文棧:在一個(gè)JS 程序中,必定會(huì)產(chǎn)生多個(gè)執(zhí)行上下文,JS 引擎會(huì)以棧的方式來(lái)處理它們,也就是執(zhí)行上下文棧。
7 、作用域:JS 是一種沒(méi)有塊級(jí)作用域的語(yǔ)言( 包括if 、for 等語(yǔ)句的花括號(hào)代碼塊或者單獨(dú)的花括號(hào)代碼塊都不能形成一個(gè)局部作用域) ,所以js 的局部作用域的形成有且只有函數(shù)的花括號(hào)內(nèi)定義的代碼塊形成的,既函數(shù)作用域。
8 、作用域鏈:是作用域規(guī)則的實(shí)現(xiàn),通過(guò)作用域鏈的實(shí)現(xiàn),變量在它的作用域內(nèi)可被訪問(wèn),函數(shù)在它的作用域內(nèi)可被調(diào)用。
作用域鏈?zhǔn)且粋€(gè)只能單向訪問(wèn)的鏈表,這個(gè)鏈表上的每個(gè)節(jié)點(diǎn)就是執(zhí)行上下文的變量對(duì)象,單向鏈表的頭部( 可被第一個(gè)訪問(wèn)的節(jié)點(diǎn)) 始終都是當(dāng)前正在被調(diào)用執(zhí)行的函數(shù)的變量對(duì)象( 活動(dòng)對(duì)象) ,尾部始終是全局活動(dòng)對(duì)象。
9 、閉包:函數(shù)對(duì)象可以通過(guò)作用域鏈相互關(guān)聯(lián)起來(lái),函數(shù)體內(nèi)的數(shù)據(jù)( 變量和函數(shù)聲明) 都可以保存在函數(shù)作用域內(nèi),這種特性在計(jì)算機(jī)科學(xué)文獻(xiàn)中被稱為“閉包”。
從技術(shù)角度來(lái)說(shuō),JS 的函數(shù)都是閉包:函數(shù)都是對(duì)象,都關(guān)聯(lián)到作用域鏈,函數(shù)內(nèi)數(shù)據(jù)都被保存在函數(shù)作用域內(nèi)。
以上就是為大家分享的關(guān)于JS基礎(chǔ)知識(shí)整理的文章。希望本篇文章能夠?qū)ο胍獙W(xué)習(xí)web前端技術(shù)的新手人員有所幫助。如需了解更多的web前端培訓(xùn)班、課程、價(jià)格、試聽(tīng)等信息,請(qǐng)您留下聯(lián)系方式,千鋒教育課程顧問(wèn)會(huì)盡快聯(lián)系您,為您定制專屬課程,開(kāi)始您的學(xué)習(xí)之旅。