一、函數(shù)
語法:
#普通函數(shù)
function 函數(shù)名(參數(shù)列表){
函數(shù)體
}
#匿名函數(shù)
函數(shù)變量 = function (參數(shù)列表){
函數(shù)體
}
局部變量:通過var關(guān)鍵字聲明在函數(shù)里面的變量
二胶逢、字符串
1. 運算
- 加法:做字符串拼接操作(支持字符串和其他數(shù)據(jù)相加)
- 比較(>, <, >=, <=,==, ===, !=, !==)
2. 長度
- 字符串.length
3. 方法
- 創(chuàng)建對象
對象 = new String(字符串)
語法 | 功能 |
---|---|
對象.big() | 產(chǎn)生一個big標(biāo)簽曹体,內(nèi)容為字符串的值 |
字符串.charAt(下標(biāo)) | 獲取指定下標(biāo)對應(yīng)的字符; 相當(dāng)于:字符串[下標(biāo)] |
字符串.charCodeAt(下標(biāo)) | 獲取指定下標(biāo)對應(yīng)的字符的unicode編碼 |
字符串.concat(數(shù)據(jù)1,數(shù)據(jù)2,...) | 將字符串和多個數(shù)據(jù)依次連接在在一起產(chǎn)生一個新的字符串(相當(dāng)于+) |
字符串.repeat(數(shù)字) | 指定的字符串重復(fù)出現(xiàn)指定次數(shù)產(chǎn)生一個新的字符串(相當(dāng)于*) |
字符串1.endsWith(字符串2) | 判斷字符串1是否以字符串2結(jié)尾 |
字符串1.indexOf(字符串2) | 獲取字符串2在字符串1中第一次出現(xiàn)的位置 |
字符串1.lastIndexOf(字符串2) | 獲取字符串2在字符串1中最后一次出現(xiàn)的位置 |
字符串.match(正則表達(dá)式) | 相當(dāng)于python中re模塊的match; 匹配成功返回(js中正則寫在兩個//之間) |
字符串1.replace(正則表達(dá)式,字符串2) | 將字符串1中第一個滿足正則表達(dá)式的子串替換成字符串2 |
字符串.slice(開始下標(biāo), 結(jié)束下標(biāo)) | 從開始下標(biāo)獲取到結(jié)束下標(biāo)前為止俗扇,步長是1 |
字符串1.split(字符串2) | 將字符串1按照字符串2進(jìn)行切割,返回一個數(shù)組 |
三箕别、數(shù)組
1. 基本操作
- 加法運算:兩個數(shù)組相加實質(zhì)是將數(shù)組轉(zhuǎn)換成字符串然后拼接
- 比較運算:==铜幽、===判斷相等是判斷地址是否相等,相等于python中的is
- 數(shù)組長度:length屬性
2. 增刪改查
-
增:
數(shù)組.push(元素) —— 在指定的數(shù)組的最后添加一個元素 -
刪:
①數(shù)組.pop() —— 刪除最后一個元素
②數(shù)組.splice(下標(biāo),個數(shù)) —— 從指定下標(biāo)開始刪除指定個數(shù)的元素 -
查:
①數(shù)組[下標(biāo)] —— 獲取下標(biāo)對應(yīng)的元素(負(fù)數(shù)的下標(biāo)沒有意義)
②數(shù)組.slice(開始下標(biāo),結(jié)束下標(biāo)) —— 返回一個新的數(shù)組(下標(biāo)可為負(fù)數(shù),[))
③for in循環(huán)
for(index in fruits){
console.log(fruits[index])
}
-
改:
數(shù)組[下標(biāo)] = 新值 —— 修改指定下標(biāo)對應(yīng)的值
3. 相關(guān)方法
語法 | 功能 |
---|---|
數(shù)組.reverse() | 倒序 |
數(shù)組.sort() | 元素從小到大排序 |
數(shù)組.join(字符串) | 將指定字符串插入數(shù)組每個元素之間產(chǎn)生一個新字符串 |
四串稀、對象
注:屬性名加不加括號沒有區(qū)別
1. 增刪查改
-
增:
(屬性不存在時)
對象.屬性 = 值
對象['屬性名'] = 值 - 刪:
-
查:
對象.屬性
對象['屬性名'] -
改:
(屬性存在時)
對象.屬性 = 值
對象['屬性名'] = 值
2. 構(gòu)造方法
語法:
function 類名(參數(shù)列表){
對象屬性
對象方法
}
說明:
對象屬性: this.屬性名 = 值
對象方法: this.方法名 = 匿名函數(shù)
類名: 首字母大寫
3. 創(chuàng)建對象
對象 = new 構(gòu)造方法()
五除抛、Date
//創(chuàng)建當(dāng)前時間對象
date1 = new Date()
//年
year = date1.getFullYear()
//月 - 從0開始的
month = date1.getMonth()
//日
day = date1.getDate()
//時
hours = date1.getHours()
//分
min = date1.getMinutes()
//秒
seconds = date1.getSeconds()
//星期
week = date1.getDay()
六、DOM操作
1. 文檔對象模型:document object model
- document對象:指的是指向整個網(wǎng)頁內(nèi)容的一個對象
- 節(jié)點:Element類型對象,指向的是網(wǎng)頁中的標(biāo)簽
2. 創(chuàng)建和添加節(jié)點
- 創(chuàng)建節(jié)點:
document.createElement(標(biāo)簽名) - 添加節(jié)點:
節(jié)點1.appendChild(節(jié)點2) —— 在節(jié)點1的最后添加子標(biāo)簽節(jié)點2
節(jié)點1.insertBefore(新的節(jié)點, 節(jié)點2) —— 在節(jié)點1中的節(jié)點2的前面添加一個新的節(jié)點
3. 刪除節(jié)點
節(jié)點.remove() —— 刪除指定的節(jié)點
節(jié)點1.removeChild(節(jié)點2) —— 刪除節(jié)點1中的節(jié)點2
4. 獲取節(jié)點
語法 | 功能 |
---|---|
document.getElementById('id') | 通過id返回節(jié)點對象 |
document.getElementsByClassName('class') | 通過class返回節(jié)點數(shù)組 |
document.getElementsByTagName(標(biāo)簽名) | 通過標(biāo)簽名獲取節(jié)點 |
document.getElementsByName('name') | 通過name屬性值獲取節(jié)點 |
節(jié)點對象.children | 獲取指定節(jié)點中所有子節(jié)點 |
節(jié)點對象.firstElementChild | 獲取第一個子節(jié)點 |
節(jié)點對象.lastElementChild | 獲取最后一個子節(jié)點 |
節(jié)點對象.parentElement | 獲取父節(jié)點 |
5. 替換節(jié)點
節(jié)點1.replaceChild(新節(jié)點, 舊節(jié)點) —— 用新節(jié)點替換節(jié)點1中的舊節(jié)點
6. 拷貝/復(fù)制節(jié)點
節(jié)點.cloneNode()
7. 節(jié)點屬性
-
增
(屬性不存在時)
①. 節(jié)點.屬性 = '新值'
②. 節(jié)點.setAttribute('屬性名', '新值') -
刪
節(jié)點.removeAttribute('屬性名') -
查
①. 節(jié)點.屬性
(注:inner相關(guān)屬性有效
innerHTML —— 標(biāo)簽內(nèi)容(包含雙標(biāo)簽內(nèi)容中的其他標(biāo)簽和文件)
innerText —— 標(biāo)簽中的文本內(nèi)容)
②. 節(jié)點.getAttributse(屬性名) -
改
(屬性存在時)
①. 節(jié)點.屬性 = '新值'
②. 節(jié)點.setAttribute('屬性名', '新值')
七母截、BOM操作
1. 瀏覽器對象模型:browser object model
- js提供了一個全局的對象window到忽, 指向的是瀏覽器
- js中聲明的所有的全局變量其實都是添加給window的屬性
2. 基本操作
- 打開新的窗口 —— open
(會返回被打開的窗口對應(yīng)的對象)
語法 | 功能 |
---|---|
open() | 空白窗口 |
open(url) | 在新窗口打開指定網(wǎng)頁 |
open(url,'','width=1,height=1') | 打開新的窗口并且設(shè)置窗口的寬度和高度 |
- 移動窗口 —— moveTo
語法:window窗口.moveTo(x,y) - 設(shè)置窗口的大小 —— resizeTo
語法:window窗口.resizeTo(w,h) - 獲取瀏覽器寬高
inner是內(nèi)容的寬度和高度(innerWidth,innerHeight)
outer瀏覽器的寬度和高度(outerWidth清寇,outerHeight)
3. 彈框
語法 | 顯示 | 返回值 |
---|---|---|
alert(提示信息) | 提示信息喘漏、確定按鈕 | 無 |
confirm(提示信息) | 提示信息、確定和取消按鈕 | 確定 ->true颗管;取消 ->false |
prompt(提示信息,輸入框中默認(rèn)值) | 提示信息陷遮、輸入框、確定和取消按鈕 | 確定 ->輸入框中的內(nèi)容垦江;取消 ->null |
八帽馋、定時器
1. 開啟定時
語法 | 功能 |
---|---|
setInterval(函數(shù),時間) | 每隔指定時間調(diào)用一次指定函數(shù);返回是定時器對象 |
setTimeout(函數(shù),時間) | 隔指定時間后調(diào)用一次指定函數(shù)(函數(shù)只會調(diào)用一次比吭,相當(dāng)于定時炸彈) |
注:函數(shù) —— 可以是函數(shù)名绽族,也可以是匿名函數(shù)
??時間 —— 單位是毫秒
2. 停止定時
語法 | 功能 |
---|---|
clearInterval(定時器對象) | 停止指定定時器 |
clearTimeout(定時器對象) | 停止指定定時器 |
九、事件綁定
1. 事件三要素:事件源衩藤、事件吧慢、事件驅(qū)動程序
2. 節(jié)點綁定事件
- 語法:節(jié)點.addEventListener(事件名, 事件驅(qū)動程序)
- 事件名:去掉事件名前面的on
- this是事件源, evt是事件對象
3. 事件冒泡和事件
事件.stopPropagation()