最近在筆試上一直受挫,還是跟自己學習的方式有關,在初期學習未能好好注重基礎,所以在面對筆試還是很雞肋。希望自己在不斷的刷題以及對文檔的溫習中能有大的進步,此博客用來簡單記錄自己的刷題記錄。
一、JS篇
1、類型轉換
運行結果為:hi
- if(x) 這里期望 x 是一個布爾類型的原始值,而 x 是一個對象,任何對象轉為布爾值,都為得到 true(切記!在 JS 中,只有 0,-0,NaN,"",null,undefined 這六個值轉布爾值時,結果為 false)。
- y = Boolean(0),而不是 y = new Boolean(0)。這兩個有很大區別,用 new 調用構造函數會新建一個布爾對象,此處沒有加 new,進行的是顯示類型轉換,正如上述第一條所說,0 轉換布爾,結果為 false,所以此時 y 的值就是 false。如果加了 new,那么 y 就是一個 Boolean 類型的對象
var變量提升但是賦值不提升
let、const變量不提升
2、javascript中實現跨域的方式總結
- 第一種方式:jsonp請求;jsonp的原理是利用<script>標簽的跨域特性,可以不受限制地從其他域中加載資源,類似的標簽還有<img>.
- 第二種方式:document.domain;這種方式用在主域名相同子域名不同的跨域訪問中
- 第三種方式:window.name;window的name屬性有個特征:在一個窗口(window)的生命周期內,窗口載入的所有的頁面都是共享一個window.name的,每個頁面對window.name都有讀寫的權限,window.name是持久存在一個窗口載入過的所有頁面中的,並不會因新頁面的載入而進行重置。
- 第四種方式:window.postMessage;window.postMessages是html5中實現跨域訪問的一種新方式,可以使用它來向其它的window對象發送消息,無論這個window對象是屬於同源或不同源。
- 第五種方式:CORS;CORS背后的基本思想,就是使用自定義的HTTP頭部讓瀏覽器與服務器進行溝通,從而決定請求或響應是應該成功還是應該失敗。
- 第六種方式:Web Sockets;web sockets原理:在JS創建了web socket之后,會有一個HTTP請求發送到瀏覽器以發起連接。取得服務器響應后,建立的連接會使用HTTP升級從HTTP協議交換為web sockt協議。
3、統計字符出現的次數
var str =
"stiabsstringapbs"
;
var obj = {};
for
(var i = 0; i < str.length; i++) {
var key = str[i];
if
(!obj[key]) {
obj[key] = 1;
}
else
{
obj[key]++;
}
}
var max = -1;
var max_key =
""
;
var key;
for
(key in obj) {
if
(max < obj[key]) {
max = obj[key];
max_key = key;
}
}
alert(
"max:"
+max+
" max_key:"
+max_key);
二、CSS篇
三、HTML篇