window對象-8.17
by 曾慶林
復(fù)習(xí)
- 數(shù)組的常見方法
- 數(shù)組的遍歷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組成

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)容

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的組成部分而已

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|no |
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 對象的方法