暑期周總結一(2018.7.9-2018.7.15)

第一週的任務安排(總結學習前端知識)以及花在代碼上的時間。javascript

週一css

學習來了解前端常見的6種報錯形式html

3h前端

週二java

Js,jq,中dom基本操做web

5h瀏覽器

週三dom

Json,異步加載大的瞭解異步

5hasync

週四

es5嚴格模式在開發中的應用

3h

週五

幹活

0h

週六

電腦重裝系統

0h

下週安排:重寫創新平臺年報統計系統。

遇到的問題以及總結:

 代碼的6種錯誤形式:

一、EvalError : eval()的使用與定義不一致(不常見)

二、RangeError : 數值越界

三、ReferenceError : 非法或不能識別的引用數值(常見)

     

四、SyntaxError : 語法解析錯誤,出現中文字符(常見)

      

五、TypeError  :  操做數類型錯誤

六、URIError : URI處理函數不恰當(地址錯誤)

 

JSON是一種傳輸數據的格式

JSON.stringify(obj);  obj--string

JSON.parse(str);   string-->obj

      

 

 

異步加載js好處:防止由於一個js中一個數據量加載錯誤,致使整個頁面加載不出來。所以使用異步js不操做dom操做。加載工具js

異步加載js三種方法:

一、defer方法

等dom文檔所有解析完纔會被執行,只有IE瀏覽器能用該方法,能夠引用外部js文件,也能夠在裏面直接寫js代碼。

代碼:<script type="text/javascript" src = "tools.js" defer = "defer"></script>

 

二、async方法

只有IE9如下的瀏覽器不能用,只能加載外部js文件,不能在內部加載js。

代碼:<script type="text/javascript" src = "tools.js" async= "async"></script>

 

三、經常使用方法,

 

 

 

js加載時間線

一、建立Document對象,解析web頁面。此時:document.readyState="loading"

二、遇到link引入的外部css文件,建立線程加載。繼續解析文檔

三、遇到script引入的外部js文件,加載

四、加載js文檔。並設置有defer 或 async 等設置,建立新線程,繼續加載。(禁止使用document。write()方法)

五、遇到img ,先加載dom結構,後異步加載src,

六、當文檔解析完後,document.readyState="interactive"

七、文檔解析完以後,所設置的defer等腳本按順序執行。

八、當全部加載執行後,document.readyState="complete" , window 觸發onload事件。

 

 

es5嚴格模式

 瀏覽器運行是基於  es3.0 + es5.0的新增方法  來執行。

對於es3.0 和 es5.0 的衝突問題。 若是使用es5.0嚴格模式,則使用es5.0方法。不然使用es3.0方法。

啓動es5.0模式方法:開頭加上 「use strict」;     添加到頁面邏輯最頂端。

 也能夠添加到局部(推薦),只在局部起做用

               

es5嚴格模式:

一、不容許使用with(){};

with(){}函數:改變做用域,簡化代碼,命名空間的使用,當多人開發時,訪問不一樣人定義的變量。

                           

 with(){}用法2

直接調用document中的函數。

eval()函數 ,改變做用域,將字符串看作代碼執行(es3.0不能使用,es5.0可使用)

         

 

在 es5.0 模式下,

一、with   arguments.collee   fuc.caller   等函數不能用。

二、變量必須先申明(es3.0中未聲明直接使用的變量暗示全局變量)

三、局部this 必須先被賦值(es3.0中默認window)

四、拒絕相同的屬性和參數,報錯 (es3.0不報錯)

相關文章
相關標籤/搜索