window對象-BOM-DOM-ECMA

window對象-8.17

by 曾慶林

復(fù)習(xí)

  1. 數(shù)組的常見方法
  2. 數(shù)組的遍歷3種方法
  3. 數(shù)組如何去重

作業(yè)講解

隨機生成指定長度的字符串
實現(xiàn)一個算法,隨機生成指制定長度的字符串。
比如給定 長度 8  輸出 4ldkfg9j


function randomString(n) {  
  // 包含所有字符的字符串
  var str = 'abcdefghijklmnopqrstuvwxyz9876543210';
  var tmp = '',
  // 臨時的字符串變量 用來存取生成的隨機字符串
      i = 0,
      l = str.length;
  for (i = 0; i < n; i++) { // 需要多長的隨機字符串 就要循環(huán)多次次(也就是n次)
    tmp += str.charAt(Math.floor(Math.random() * l));
    // 隨機取一個字符并加入 臨時字符串中
  }
  return tmp; 
  //返回的隨機字符串
}
 

判斷一個單詞是否是回文?

回文是指把相同的詞匯或句子,在下文中調(diào)換位置或顛倒過來,產(chǎn)生首尾回環(huán)的情趣,叫做回文,也叫回環(huán)。比如 mamam   

很多人拿到這樣的題目非常容易想到用for 將字符串顛倒字母順序然后匹配就行了。其實重要的考察的就是對于reverse的實現(xiàn)。其實我們可以利用現(xiàn)成的函數(shù),將字符串轉(zhuǎn)換成數(shù)組,這個思路很重要,我們可以擁有更多的自由度去進行字符串的一些操作。

function checkRetrunWord(str) {  
   return str == str.split('').reverse().join('');
   // str.split('')字符串轉(zhuǎn)換為數(shù)組
   // reverse() 將數(shù)組反轉(zhuǎn)
   // join('') 將反轉(zhuǎn)的數(shù)組轉(zhuǎn)換為字符串
}


單詞預(yù)習(xí)

  • parse | 轉(zhuǎn)換
  • int | 整數(shù)
  • Float | 浮點數(shù)(小數(shù))
  • NaN | not a number 不是一個數(shù)
  • BOM | (不用記)Browser Object Model 瀏覽器對象模型
  • DOM | (不用記)Document Object Mode 文檔對象模型
  • history | 歷史
  • location |地址
  • close |關(guān)
  • open |打開
  • back |返回
  • foword |前進
  • go | 去
  • reload | 重新加載

知識點講解

4.1 常用window 系統(tǒng)對象

名稱 說明
parseInt 將字符串轉(zhuǎn)換為整型數(shù)字 如: parseInt ("86")將字符串“86”轉(zhuǎn)換為整型值86
parseFloat 將字符串轉(zhuǎn)換為浮點型數(shù)字 如: parseFloat("34.45")將字符串“34.45”轉(zhuǎn)換為浮點值34.45
isNaN() 用于檢查其參數(shù)是否是非數(shù)字
prompt 顯示可提示用戶輸入的對話框
alert 顯示帶有一個提示信息和一個確定按鈕的警示框
confirm 顯示一個帶有提示信息、確定和取消按鈕的對話框
close 關(guān)閉瀏覽器窗口
open 打開一個新的瀏覽器窗口,加載給定 URL 所指定的文檔
setTimeout 在指定的毫秒數(shù)后調(diào)用函數(shù)或計算表達式
setInterval 按照指定的周期(以毫秒計)來調(diào)用函數(shù)或表達式

4.2 javascript組成

image

1. EMCAScript

ECMAScript 不是一種編程語言,僅僅是一種腳本語言規(guī)范,由歐洲計算機協(xié)會制定和發(fā)布,任何基于此規(guī)范實現(xiàn)的腳本語言都要遵守它的約定。

ECMAScript 規(guī)定了 JavaScript 腳本的核心語法,如 數(shù)據(jù)類型、關(guān)鍵字、保留字、運算符、對象和語句等,它不屬于任何瀏覽器。Web 瀏覽器對于 ECMAScript 來說只是一個宿主環(huán)境,但它并不是唯一的宿主環(huán)境。事實上,還有不計其數(shù)的其他各種環(huán)境(例如Macromedia 同時用在 Flash 和 Director MX 中的 ActionScript,如現(xiàn)在很火的nodejs)可以容納 ECMAScript 實現(xiàn)。 也就是說除了我們常說的JavaScript是基于他實現(xiàn)的,另外還有其他的語言也是根據(jù)他實現(xiàn)的

2. BOM
瀏覽器對象模型是針對瀏覽器或者說是針對瀏覽器窗口的應(yīng)用程序編程接口。這個概念實現(xiàn)就沒有了標(biāo)準(zhǔn)規(guī)范了,都是根據(jù)各自瀏覽器廠商自定的規(guī)范實現(xiàn)的,但是也基本趨于一致。最多的像我們常用的navigator、window里的一些瀏覽器相關(guān)的對象、location等對象都是這個接口所提供的內(nèi)容

image

  
  
3. DOM
文檔對象模型(DOM,Document Object Model)是針對XML 但經(jīng)過擴展用于HTML 的應(yīng)用程序編程接口。DOM把整個頁面映射為一個多層節(jié)點結(jié)構(gòu)。HTML或XML 頁面中的每個組成部分都是某種類型的節(jié)點,這些節(jié)點又包含著不同類型的數(shù)據(jù)。

舉一個很簡單的例子,我們所熟悉的getElementById函數(shù)是document對象下的一個方法。document對象就是DOM中定義的一個內(nèi)容,瀏覽器實現(xiàn)了他,依據(jù)EMCAScript的特性,然后我們又可以通過他來獲取到頁面中的某一個節(jié)點,獲取到的這個節(jié)點被實現(xiàn)為一個對象,他擁有許多屬性和方法,這些屬性和方法也是在DOM的定義下由瀏覽器實現(xiàn)的。但是DOM的這些實現(xiàn)依據(jù)的是EMCAScript規(guī)范所制定的語言的特性,所以這才會讓我們誤認為他們就是JavaScript,其實這個只是JavaScript的組成部分而已

image

4.3 window open 和close 方法

open() 方法用于打開一個新的瀏覽器窗口或查找一個已命名的窗口。

window.open(URL,name,specs,replace)

specs 參數(shù)不需要掌握
參數(shù) 說明
URL 打開指定的地址
name _blank _self
specs參數(shù) height=100 高
width=100 寬
left=100 該窗口的左側(cè)位置
top=100 窗口頂部的位置.
location=yes&#124no
1 0 是否顯示地址字段.默認值是yes
menubar=yes
no 1 0 是否顯示菜單欄.默認值是yes
resizable=yes
no 1 0 是否可調(diào)整窗口大小.默認值是yes
scrollbars=yes
no 1 0 是否顯示滾動條.默認值是yes
status=yes
no 1 0 是否要添加一個狀態(tài)欄.默認值是yes
titlebar=yes
no 1 0
是否顯示標(biāo)題欄.被忽略,除非調(diào)用HTML應(yīng)用程序或一個值得信賴的對話框.默認值是yes
toolbar=yes
no 1 0 是否顯示瀏覽器工具欄.默認值是yes

specs 谷歌只支持前四項目(咱們也就記 width height top left)

function open_win() { 
    window.open("http://www.520mg.com"); 
} 
function openWin(){ 
    myWindow=window.open('','_blank','width=200,height=100'); 
    myWindow.document.write("<p>這是'我的窗口'</p>"); 
    myWindow.focus(); 
}
function open_win(){
    window.open("http://www.520mg.com","_blank","toolbar=yes, location=yes,  status=no, menubar=yes, scrollbars=yes, resizable=no, width=400, height=400");
}

關(guān)閉窗口
自己打開的才能自己關(guān)閉

<script>
var myWindow;
function openWin(){
    myWindow=window.open("","","width=400,height=200");
}
function closeWin(){
    if (myWindow){
        myWindow.close();
    }
}
</script>
<input type="button" value="打開我的窗口" onclick="openWin()" />
<input type="button" value="關(guān)閉我的窗口" onclick="closeWin()" />

4.4 hsitory 對象

back() 后退歷史記錄
forward() 前進歷史記錄
go() 跳轉(zhuǎn)到某個歷史記錄

4.5 location 對象

href 獲取當(dāng)前的地址 如果設(shè)置值是跳轉(zhuǎn)到 設(shè)置地址
reload() 刷新(重新加載)

4.6 擴展

console.log(window)
console.log(window.location)

判斷對象的數(shù)據(jù)類型 (* 面試必會被問到)

null:空、無。表示不存在,當(dāng)為對象的屬性賦值為null,表示刪除該屬性
undefined:未定義。當(dāng)聲明變量卻沒有賦值時會顯示該值??梢詾樽兞抠x值為undefined
number:數(shù)值。最原始的數(shù)據(jù)類型,表達式計算的載體
string:字符串。最抽象的數(shù)據(jù)類型,信息傳播的載體
boolean:布爾值。最機械的數(shù)據(jù)類型,邏輯運算的載體
object:對象。Array Math String Date Object

typeof  簡單數(shù)據(jù)類型  typeof ”123“
instanceof 復(fù)雜數(shù)據(jù)類型  [] instanceof Array
constructor 檢查構(gòu)造函數(shù) [].constructor == Object
Object.prototype.toString  最簡單 Object.prototype.toString.call([])

復(fù)習(xí)

window 常用方法有哪些
默寫 history 的方法
默寫 location 對象的方法

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容