Web大前端面試題-Day6

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事件(跟在#符號後面的URL部分,包括#符號)b)
hashchange事件觸發時, 事件對象會有hash改變前的URL(oldURL)和hash改變後的URL(newURL)兩個屬性。

5. 什麼是CDN, CDN對於網站有什麼意義, 它有什麼樣的缺點?

CDN又稱爲內容分發網絡;  本意在於
儘量避開互聯網上有可能影響數據
傳輸速度和穩定性的瓶頸和環節,
使內容傳輸的更快、更穩定。

主要目的:

解決因分佈、帶寬、服務器性能帶來的訪問延遲問題,
適用於站點加速、點播、直播等場景。

使用戶可就近取得所需內容,解決 Internet網絡擁擠的情況,
提升用戶訪問網站的響應速度和成功率。

缺點:
a) 實施複雜 , 投資大;

b) 目前大部分的CDN還只是對靜態內容加速,
對動態加速效果很差;
而雙線對動態加速的效果跟靜態是同樣的。
相關文章
相關標籤/搜索