1.請說明ECMAScript, JavaScript, Jscript之間的關係?
ECMAScript提供腳本語言必須遵照的規則、
細節和準則,是腳本語言的規範。
好比:ES5,ES6就是具體的一js版本。
JavaScript是ECMAScript的一個分支版本,
JavaScript 實現了多數 ECMA-262 中
描述的 ECMAScript 規範,但存在少數差別。
JScript是微軟公司對ECMA-262語言規範的
一種實現,除了少數例外(這是爲了保持向後兼容 ),
微軟公司宣稱JScript徹底實現了ECMA標準.
關係:
JavaScript和JScript都是ECMAScript的版本分支,
兩者在語法上沒有多大的區別; 只不過一個是
NetScape公司的, 一個是微軟的; IE系列默認是
JScript, 其它的則反之用JavaScript。
複製代碼
2. 頁面加載過程當中可能觸發哪些事件? 它們的順序是?
頁面加載時,大體能夠分爲如下幾個步驟:
1) 開始解析HTML文檔結構
2) 加載外部樣式表及JavaScript腳本
3) 解析執行JavaScript腳本
4) DOM樹渲染完成
5) 加載未完成的外部資源(如 圖片)
6) 頁面加載成功
執行順序:
1) document readystatechange事件
2) document DOMContentLoaded事件
3) window load事件
複製代碼
3. 函數中在聲明變量a前使用a會產生錯誤嗎? 爲何?
不會, JS中可以進行變量做用域提高,
把全部變量、函數的聲明提高到當前
做用域的最前面, 但不進行賦值操做;
因此可能形成獲取的值是undefined。
複製代碼
4. 什麼是hash, 以及hashchange事件?
先了解下什麼是hash:
hash即URL中"#"字符後面的部分。
a) 使用瀏覽器訪問網頁時,
若是網頁URL中帶有hash,
頁面就會定位到id(或name)
與hash值同樣的元素的位置;
b) hash還有另外一個特色,
它的改變不會致使頁面從新加載;
c) hash值瀏覽器是不會隨請求發送到服務器端的;
d) 經過window.location.hash屬性獲取和設置hash值。
window.location.hash值的變化會直接
反應到瀏覽器地址欄(
同時,瀏覽器地址欄hash值的變化也會觸發
window.location.hash值的變化,
從而觸發onhashchange事件。
再來了解下什麼是hashchange事件:
a) 當URL的片斷標識符更改時,
將觸發hashchange事件
(跟在
b) hashchange事件觸發時,
事件對象會有hash改變前的URL
(oldURL)和hash改變後的URL
(newURL)兩個屬性。
複製代碼
5. 什麼是CDN, CDN對於網站有什麼意義, 它有什麼樣的缺點?
CDN又稱爲內容分發網絡; 本意在於
儘量避開互聯網上有可能影響數據
傳輸速度和穩定性的瓶頸和環節,
使內容傳輸的更快、更穩定。
主要目的:
解決因分佈、帶寬、服務器性能帶來的訪問延遲問題,
適用於站點加速、點播、直播等場景。
使用戶可就近取得所需內容,解決 Internet網絡擁擠的情況,
提升用戶訪問網站的響應速度和成功率。
缺點:
a) 實施複雜 , 投資大;
b) 目前大部分的CDN還只是對靜態內容加速,
對動態加速效果很差;
而雙線對動態加速的效果跟靜態是同樣的。
複製代碼