HTML/CSS
- Viewreport是meta屬性媒役,不是html5新增屬性
- web表單登錄中用到圖形驗證碼的方式,服務器端生成驗證碼后一方面通過圖片將驗證碼返回給客戶端宪迟,同時在服務器端保存文本的驗證碼酣衷,由服務器端驗證輸入內容是否正確。
- obj.options[obj.selectedIndex].text獲取表單select中被選擇的文本次泽。
- Readonly = true時穿仪,頁面上不能更改,但是input值會隨著表單提交意荤。
Disabled = true時啊片,頁面上不能更改,input值不會隨表單提交玖像。 - html5標準的鏈接默認都是帶下劃線的
bootstrap鏈接只有在hover狀態(tài)下才帶下劃線 - iframe可用在以下幾個場景中:
- 典型系統(tǒng)結構紫谷,左側是功能樹,右側就是一些常見的table或者表單之類捐寥。為了一個功能笤昨,單獨分離出來,采用iframe握恳。
- ajax上傳文件
- 加在別的網站內容瞒窒,例如gogle廣告,網站流量分析乡洼。
- 在上傳圖片時崇裁,不用flash實現(xiàn)無刷新。
- 跨域訪問的時候可以用到iframe束昵,使用iframe請求不同域名下的資源拔稳。
- bootstrap3瀏覽器兼容
- bootstrap 屏幕兼容柵格參數(shù)
-
Ajax 與 flash區(qū)別
- Ajax的優(yōu)勢:
- 可搜索性
- 開放性
- 費用
- 易用性
- 易于開發(fā)。
- Flash的優(yōu)勢:
- 多媒體處理
- 兼容性
- 矢量圖形
- 客戶端資源調度
- Ajax的劣勢:
- 它可能破壞瀏覽器的后退功能
- 使用動態(tài)頁面更新使得用戶難于將某個特定的狀態(tài)保存到收藏夾中 妻怎,不過這些都有相關方法解決壳炎。
- Flash的劣勢:
- 二進制格式
- 格式私有
- flash 文件經常會很大,用戶第一次使用的時候需要忍耐較長的等待時間
- 性能問題
- Ajax的優(yōu)勢:
-
置換元素與不可替換元素
- 置換元素:瀏覽器根據元素的標簽和屬性逼侦,來決定元素的具體顯示內容匿辩。
- 不可替換元素:(x)html 的大多數(shù)元素是不可替換元素,即其內容直接表現(xiàn)給用戶端(如瀏覽器)榛丢。例如: <label>label中的內容</label> 標簽<label>是一個非置換元素铲球,文字label中的內容”將全被顯示。
-
i++與++i的區(qū)別
- i++表示先把i傳值給函數(shù)晰赞,然后再將i+1;
- ++i表示現(xiàn)將i+1再傳值給函數(shù)
排序穩(wěn)定性
不穩(wěn)定:快選堆希
穩(wěn) 定:插冒歸基-
使用 for in 循環(huán)數(shù)組中的元素會枚舉原型鏈上的所有屬性稼病,過濾這些屬性的方式是使用hasOwnProperty函數(shù)
for in可以獲取object的所有屬性,包括自定義屬性以及原型鏈屬性选侨。
for(var attr in object){
console.log(attr+":"object[attr]);
} hasOwnProperty()只能獲取自定義屬性,無法獲取原型鏈屬性然走。 -
JSONP的優(yōu)缺點
- 優(yōu)點
- 它不像XMLHttpRequest對象實現(xiàn)的Ajax請求那樣受到同源策略的限制援制,JSONP可以跨越同源策略;
- 它的兼容性更好芍瑞,在更加古老的瀏覽器中都可以運行晨仑,不需要XMLHttpRequest或ActiveX的支持
- 在請求完畢后可以通過調用callback的方式回傳結果。將回調方法的權限給了調用方拆檬。這個就相當于將controller層和view層終于分開了洪己。我提供的jsonp服務只提供純服務的數(shù)據,至于提供服務以 后的頁面渲染和后續(xù)view操作都由調用者來自己定義就好了竟贯。如果有兩個頁面需要渲染同一份數(shù)據答捕,你們只需要有不同的渲染邏輯就可以了,邏輯都可以使用同 一個jsonp服務屑那。
- 缺點
- 它只支持GET請求而不支持POST等其它類型的HTTP請求
- 它只支持跨域HTTP請求這種情況拱镐,不能解決不同域的兩個頁面之間如何進行JavaScript調用的問題。
- jsonp在調用失敗的時候不會返回各種HTTP狀態(tài)碼齐莲。
- 缺點是安全性痢站。萬一假如提供jsonp的服務存在頁面注入漏洞,即它返回的javascript的內容被人控制的选酗。那么結果是什么阵难?所有調用這個 jsonp的網站都會存在漏洞。于是無法把危險控制在一個域名下…所以在使用jsonp的時候必須要保證使用的jsonp服務必須是安全可信的芒填。
- 優(yōu)點
行內塊元素有呜叫,input textarea object img select,默認屬性是inline-block殿衰。
-
web storage有以下幾種對象:
- sessionStorage:存儲特定于某個會話的數(shù)據朱庆,該數(shù)據只保留到瀏覽器關閉。
- globalStorage:目的是跨越會話存儲數(shù)據闷祥,不過要指定哪些域可以訪問該數(shù)據娱颊。如果不使用 removeItem() 或 delete 刪除,或者用戶未清除瀏覽器緩存凯砍,存儲在globalStorage上的數(shù)據會一直保留在磁盤上箱硕。所以globalStorage非常適合在客戶端存儲文檔或長期保留用戶偏好設置。
- localStorage:在HTML5中作為持久保持客戶端數(shù)據的方案取代了globalStorage悟衩。它不能被指定訪問規(guī)則剧罩,要訪問localStorage,頁面必須來自同一個域名座泳,使用同一種協(xié)議惠昔,在同一個端口上幕与。它的數(shù)據也保留到通過JavaScript刪除或用戶清除瀏覽器緩存。
-
函數(shù)加括號與不加括號的區(qū)別
簡單來說镇防,fun是調用整個函數(shù)啦鸣,fun()得到的的是函數(shù)調用之后的返回值。所以在setTimeOut(fun,500)或者addEventListener('click',fun)中調用的都是函數(shù)来氧,所以不能加括號赏陵。
而setTimeOut如果加引號的話,就是要加括號生效饲漾。setTimeOut('fun',500).
dom2規(guī)定的時間流包括三個階段:1. 事件捕獲 2. 處于目標階段(事件處理) 3. 事件冒泡階段
-
各種存儲方案簡單對比
- Cookies:瀏覽器均支持,容量為4KB
- UserData:僅IE支持缕溉,容量為64KB
- Flash:100KB考传,非HTML原生,需要插件支持
- Google Gears SQLite:需要插件支持证鸥,容量無限制
- LocalStorage:HTML5僚楞,容量為5M
- SessionStorage:HTML5,容量為5M
- globalStorage:Firefox獨有的枉层,F(xiàn)irefox3開始就不支持這個方法泉褐。
UserData僅IE支持,Google Gears SQLite需要插件鸟蜡,F(xiàn)lash已經伴隨著HTML5的出現(xiàn)退出了歷史舞臺膜赃,因此現(xiàn)在主要需要了解的只有:Cookie,LocalStorage揉忘,SessionStorage跳座;
JavaScript中只有函數(shù)作用域的概念,沒有塊級作用域的概念泣矛。
class="lang-js">var msg='hello'; for (var i=0; i<10; i++) { var msg='hello'+i*2+i; } alert(msg);
輸出結果為hello189疲眷,而不是hello。var x = new Boolean(false); 此時的x為object您朽,所以if(x)為true狂丝。如果var y = Boolean(0);此時的y為false是布爾值,所以if(y)為false哗总。
-
console.log(Number("")); //0
console.log(Number(null)); //0
console.log(Number(undefined)); //NaNconsole.log(parseInt("")); //NaN
console.log(parseInt(null)); //NaN
console.log(parseInt(undefined)); //NaNconsole.log(null == 0); //false
console.log(undefined == 0); //false - 一個promise可能有三種狀態(tài):等待(pending)几颜、已完成(fulfilled)、已拒絕(rejected)
- 一個promise的狀態(tài)只可能從“等待”轉到“完成”態(tài)或者“拒絕”態(tài)魂奥,不能逆向轉換菠剩,同時“完成”態(tài)和“拒絕”態(tài)不能相互轉換
- promise必須實現(xiàn)then方法(可以說,then就是promise的核心)耻煤,而且then必須返回一個promise具壮,同一個promise的then可以調用多次准颓,并且回調的執(zhí)行順序跟它們被定義時的順序一致
- then方法接受兩個參數(shù),第一個參數(shù)是成功時的回調棺妓,在promise由“等待”態(tài)轉換到“完成”態(tài)時調用攘已,另一個是失敗時的回調,在promise由“等待”態(tài)轉換到“拒絕”態(tài)時調用怜跑。同時样勃,then可以接受另一個promise傳入,也接受一個“類then”的對象或方法性芬,即thenable對象峡眶。
- DNS就是將域名翻譯成IP地址。
- 主要用UDP植锉,但是當請求字節(jié)過長超過512字節(jié)時用TCP協(xié)議辫樱,將其分割成多個片段傳輸。
- DNS協(xié)議默認端口號是53俊庇。
- 操作系統(tǒng)的DNS緩存:windows DNS緩存的默認值是 MaxCacheTTL狮暑,它的默認值是86400s,也就是一天辉饱。macOS 嚴格遵循DNS協(xié)議中的TTL搬男。
- 游覽器的DNS緩存:chrome對每個域名會默認緩存60s;IE將DNS緩存30min彭沼;Firefox默認緩存時間只有1分鐘缔逛;Safari約為10S。
typeof Symbol() //"symbol"
typeof Number() //"number"
typeof String() //"string"
typeof Function() //"function"
typeof Object() //"object"
typeof Boolean() //"boolean"
typeof null //"object"
typeof undefined //"undefined"var bb = 1;
function aa(bb) {
bb = 2;
alert(bb);
};
aa(bb);
alert(bb);
彈出2,1溜腐;因為傳入了參數(shù)bb译株,所以雖然bb在函數(shù)體內沒有用var定義,但是依然作用后被銷毀挺益,若改成
<pre>var bb = 1;
function aa(bb) {
var bb = 2;
alert(bb);
};
aa(bb);
alert(bb);</pre>
則彈出2,2,歉糜。JavaScript原始數(shù)據類型:String,Null望众,Undefined匪补,Boolean,Number烂翰,Symbol(ES6新增)夯缺。
基本數(shù)據類型:String,Null甘耿,Undefined踊兜,Boolean,Number佳恬,Symbol(ES6新增)捏境;