js bom 瀏覽器對象

一秋麸、 定時器

setTimeout()

setTimeout() :在指定的毫秒數后調用函數或計算表達式。

//定時執(zhí)行某些代碼
setTimeout(() => {
  console.log("1秒");
}, 1000);

setInterval()

setInterval() :按照指定的周期(以毫秒計)來調用函數或計算表達式。方法會不停地調用函數丐箩,直到 clearInterval() 被調用或窗口被關閉旭咽。

var i = 0;
var t = setInterval(() => {
  console.log("定時器");
  if (i == 9) {
    clearInterval(t);
  }
  i++;
}, 1000);

var t2 = setInterval(() => {
  console.log("定時器2");
}, 1000);

console.log("setInterval", t, t2);

二、 同步異步

  1. 先執(zhí)行同步,在執(zhí)行異步
  2. 在執(zhí)行棧從上而下執(zhí)行語句,將異步操作分配任務列表,然后繼續(xù)執(zhí)行后續(xù)的代碼
  3. 當所有的同步都執(zhí)行完畢窒篱,才到事件輪詢(event loop)去根據隊列中的任務觸發(fā)條件
  4. 是否滿足條件,然后執(zhí)行異步的回調(callback)
console.log("1號");

console.time();
setTimeout(() => {
  //異步
  console.log("2號");
}, 0);
console.timeEnd();
console.log("3號"); //同步

///輸出結果 1 .3. 2

三、 存儲

1. cookie

  1. 可以用作登陸憑證(百度)
  2. 可以用于請求的傳輸
  3. 瀏覽器限制 大小最多 4kb 左右 舶沿,個數 20+

<button onclick="setMyCookie()">設置 set</button>
<button onclick="getMyCookie()">獲取 get</button>
<button onclick="delMyCookie()">清除 del</button>

function setMyCookie() {
            setCookie('test', 12345)
    }

function getMyCookie() {
            console.log(getCookie('test'));
    }

function delMyCookie() {
            setCookie('test', null, 0)
    }

   /*
   *  expires  過期時間       對照服務器時間(UTC)
   *  domain   域名
   *  path     路徑
   *
   */
 function setCookie(name,value, days  ){
     var Days = (days !== undefined ? days: 30 );
     var exp = new Date();   // 當前時間
     exp.setTime(exp.getTime() + Days*24*60*60* 1000); // 設置過期時間
     console.log(exp);
     console.log(exp);
     document.cookie = name + "="+ escape (value) + ";expires=" + exp.toUTCString()+';path=/;';
 }
 function getCookie(name){
     // 例子: "test=12345; name=wer; age=13"
     var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
     if(arr=document.cookie.match(reg))
     return unescape(arr[2]);
     else
     return null;
 }

2. storeage

  • 大小 5MB 左右墙杯,個數不受限
  • 用于 http 傳輸時需要手動提取和設置

不管是 localStorage,還是 sessionStorage括荡,可使用的 API 都相同高镐,常用的有如下幾個(以 localStorage 為例):

  • 保存數據:localStorage.setItem(key,value);

  • 讀取數據:localStorage.getItem(key);

  • 刪除單個數據:localStorage.removeItem(key);

  • 刪除所有數據:localStorage.clear();

  • 得到某個索引的 key:localStorage.key(index);

!> 提示: 鍵/值對通常以字符串存儲,你可以按自己的需要轉換該格式畸冲。

// localStorage     永久存儲
var record = ["周杰倫", "陳奕迅"];
// 設置
// JSON.stringify(數據)  將數據轉為JSON字符串
localStorage.setItem("record", JSON.stringify(record));
// 獲取
var get_record = localStorage.getItem("record");
// JSON.parse(字符串)  將JSON字符串轉為對應數據格式
console.log(JSON.parse(get_record));
// 移除  localStorage.removeItem(數據名)

// sessionStorage    會話存儲       頁面關閉的時候就會被移除
sessionStorage.setItem("history", "hahaha");

四嫉髓、 跳轉

1. location 對象

//地址欄
console.log(location);

location.href="url?參數1="+參數1值 //跳轉到url(原頁面跳轉),是跳到新的頁面邑闲,可以回退 舉個栗子:window.location.href="./頁面?zhèn)鲄?html?id="+id;  //拼接傳遞參數
location.replace(url);  //跳轉到url算行,替代掉當前頁面,不可以回退

location.reload();      //重新刷新頁面

location.search;            //傳遞的參數放在location.search里面

2. history 歷史對象

history.back(); //后退頁面

history.forward();  //前進頁面

history.go(n);      //n為正數苫耸,表示前進n個頁面州邢;n為負數,表示后退n個頁面

3. 獲取 url 參數

//獲取url查詢字符串的參數
function getQueryString(item) {
  var svalue = location.search.match(
    new RegExp("[?&]" + item + "=([^&]*)(&?)", "i")
  );
  return svalue ? svalue[1] : svalue;
}
//獲取其他頁面?zhèn)鬟^來的等級lv,()中寫對應的字符串 'lv'
var lv = getQueryString("lv");

五褪子、 window 對象

window.confirm("是否確認"); //帶有確認的彈窗量淌,返回布爾值
window.close();             //關閉當前頁面

window.open(url,'_blank');      //打開新頁面(新增頁面)
window.open(url,'_self');       //打開新頁面(原頁面打開)

六骗村、 navigator 對象

navigator.userAgent; //查看瀏覽器的內核信息
navigator.appCodeName; //瀏覽器代號
navigator.appVersion; //瀏覽器版本
navigator.cookieEnabled; //啟用Cookies
navigator.platform; //硬件平臺
navigator.userAgent; //用戶代理
navigator.systemLanguage; //用戶代理語言

七、 screen 屏幕對象

document.write("總寬度/高度: ");
document.write(screen.width + "*" + screen.height);
document.write("可用寬度/高度: ");
document.write(screen.availWidth + "*" + screen.availHeight);
document.write("色彩深度: ");
document.write(screen.colorDepth);
document.write("色彩分辨率: ");
document.write(screen.pixelDepth);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末呀枢,一起剝皮案震驚了整個濱河市胚股,隨后出現的幾起案子,更是在濱河造成了極大的恐慌裙秋,老刑警劉巖琅拌,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異残吩,居然都是意外死亡财忽,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進店門泣侮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來即彪,“玉大人,你說我怎么就攤上這事活尊×バ#” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵蛹锰,是天一觀的道長深胳。 經常有香客問我,道長铜犬,這世上最難降的妖魔是什么舞终? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮癣猾,結果婚禮上敛劝,老公的妹妹穿的比我還像新娘。我一直安慰自己纷宇,他們只是感情好夸盟,可當我...
    茶點故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著像捶,像睡著了一般上陕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拓春,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天释簿,我揣著相機與錄音,去河邊找鬼硼莽。 笑死辕万,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播渐尿,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼矾瑰!你這毒婦竟也來了砖茸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤殴穴,失蹤者是張志新(化名)和其女友劉穎凉夯,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體采幌,經...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡劲够,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了休傍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片征绎。...
    茶點故事閱讀 40,912評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖磨取,靈堂內的尸體忽然破棺而出人柿,到底是詐尸還是另有隱情,我是刑警寧澤忙厌,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布凫岖,位于F島的核電站,受9級特大地震影響逢净,放射性物質發(fā)生泄漏哥放。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一爹土、第九天 我趴在偏房一處隱蔽的房頂上張望甥雕。 院中可真熱鬧,春花似錦着饥、人聲如沸犀农。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽呵哨。三九已至,卻和暖如春轨奄,著一層夾襖步出監(jiān)牢的瞬間孟害,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工挪拟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挨务,地道東北人。 一個月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像谎柄,于是被迫代替她去往敵國和親丁侄。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內容