<<JavaScript 高級程序設(shè)計>>小結(jié)

第一章 JavaScript的簡介

第二章 在HTML中使用JavaScript


把JavaScript插入到HTML頁面中要使用<script>元素。使用這個元素可以把JavaScript嵌入到HTML頁面中,讓腳本與標記混合在一起;也可以包含外部的JavaScript文件。而我們需要注意的地方有:

  • 在包含外部JavaScript文件時,必須將src屬性設(shè)置為指向相應(yīng)文件的URL。而這個文件既可以是與包含它的頁面位于同一個服務(wù)器上的文件,也可以是其他域中的文件。
  • 所有<script>元素都會按照它們在頁面中出現(xiàn)的先后順序依次被解析。在不適用defer和async屬性的情況下,只有在解析完前面的<script>元素中的代碼之后,才會開始解析后面<script>元素中的代碼。
  • 由于瀏覽器會先解析完不適用defer屬性的<script>元素中的代碼,然后再解析后面的內(nèi)容,所以一般把<script>元素放在頁面最后。
  • 使用defer屬性可以讓腳本在文檔完全呈現(xiàn)出來之后再執(zhí)行。延遲腳本總是按照指定它們的順序執(zhí)行。
  • 使用async屬性可以表示當前腳本不必等待其他腳本,也不必阻塞文檔呈現(xiàn)。不能保證異步腳本按照它們在頁面中出現(xiàn)的順序執(zhí)行。
  • 使用<noscript>元素可以指定在不支持腳本的瀏覽器中顯示的替代內(nèi)容。但在啟動腳本的情況下,瀏覽器不會顯示<noscript>元素中的任何內(nèi)容。

第三章 基本概念

3.1 語法
語法.png
3.3 變量

ECMAScript的變量是松散類型的,所謂松散類型就是可以用來保存任何類型的數(shù)據(jù)。定義變量使要使用var操作符。因此可以修改變量值的同時修改值得類型
例如:

var message = "hi";
message = 100; //有效,但不推薦

有一點必須注意,即用var操作符定義的變量將成為定義該變量的作用域中的局部變量。

3.4 數(shù)據(jù)類型
數(shù)據(jù)類型.png
3.5 操作符
操作符.png
3.6 語句
3.6.1 if語句
3.6.2 do-while語句
3.6.3 while語句
3.6.4 for語句
3.6.5 for-in語句
  • for-in語句是一種精準的迭代語句,可以用來枚舉對象的屬性。
  • 通過for-in循環(huán)輸出的屬性名的順序是不可預測的。建議在使用for-in循環(huán)之前,先檢測確認該對象的值不是null或undefined。

3.6.6 label語句
3.6.7 break和continue語句
3.6.8 with語句
  • 作用是將代碼的作用域設(shè)置到一個特定的對象中,簡化多次編寫同一個對象的工作。
  • 嚴格模式下不允許使用with語句

3.6.9 switch語句
3.7 函數(shù)
  • ECMAScript中沒有函數(shù)簽名的概念,因為其函數(shù)參數(shù)是以一個包含零或多個值的數(shù)組的形式傳遞的。
  • 可以向ECMAScript函數(shù)傳遞任意數(shù)量的參數(shù),并且可以通過arguments對象來訪問這些參數(shù)。
  • 由于不存在函數(shù)簽名的特性,ECMAScript函數(shù)不能重載。

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

4.1 基本類型和引用類型的值
  • 動態(tài)的屬性:只能給引用類型值動態(tài)地添加屬性,以便將來使用。
  • 復制變量值:基本類型值和引用類型值得區(qū)別。
  • 參數(shù)的傳遞:ECMAScript中所有函數(shù)的參數(shù)都是按值傳遞的。
  • 檢測類型:用typeof檢測對象只會返回"object",所以提供了instanceof操作符,其語法如下:

result = variable instanceof constructor

如果引用類型是Object,返回true;

4.2 執(zhí)行環(huán)境以及作用域
執(zhí)行.jpg
var color = "blue";
function changeColor() {
var anotherColor = "red";
    function swapColors() {
        var tempColor = anotherColor;
        anotherColor = color;
        color = tempColor;
}
swapColors();
}
changeColor();

這個例子的作用域鏈為

QQ圖片20170124110547.jpg
  • 可以通過try-catch語句的catch塊 和 with語句來延長作用域鏈
  • javascript沒有塊級作用域,對于塊級作用域的語言來說,for語句初始化變量的表達式所定義的變量,只會存在于循環(huán)的環(huán)境之中。而對于javascript來說,由for語句創(chuàng)建的變量i即使在for循環(huán)執(zhí)行結(jié)束后,也依舊會存在于循環(huán)外部的執(zhí)行環(huán)境。
4.3 垃圾收集
4.3.1 標記清除
4.3.2 引用計數(shù)
4.3.3 性能問題
4.3.4 管理內(nèi)存
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第1章 JavaScript 簡介 JavaScript 具備與瀏覽器窗口及其內(nèi)容等幾乎所有方面交互的能力。 歐洲...
    力氣強閱讀 1,295評論 0 0
  • 有人說過,很多彎路到最后都成了直路,所有的坑到最后也都成了坦途;所謂的直路和坦途并不是擺在眼前的,都是不斷的的...
    老衲法號一眉道人閱讀 1,463評論 0 4
  • 爺爺走了快兩年了,就在他過完九十歲生日沒多久。 從小到大爺爺給我的印象是總是埋頭干活,話很少,脾氣很好。鄰居和親戚...
    天空之魚閱讀 247評論 0 0
  • 無中生有,是生發(fā)的智慧,核心就一個字,用! 而用來做什么就是每個人的無。 如果你想有錢,你就用無中生有生發(fā)出錢來;...
    顏滿媛閱讀 1,357評論 0 0
  • 群里有個任務(wù),要求寫下100天踐行總結(jié),平時時緊好像很緊,又靜不下心來寫字,于是,利用早起晨間日記的時間寫了。...
    我是醒來閱讀 103評論 0 0

友情鏈接更多精彩內(nèi)容