JavaScript
JavaScript = ECMAScript + JavaScript本身特有的(BOM+DOM)
ECMAScrpit:客戶端腳本語言的標準
基本語法
- js引入
- 內部js
- 外部js
- 定義script,經過src屬性引入外部js文件
注:同一級 直接寫文件名
上一級 ../
上上一級 ../../
- 註釋
1. 單行註釋 ://註釋內容
2. 多行註釋:/* 註釋內容 */
- 數據類型
1. 原始數據類型:
1. number:整數/小數/NaN(not a number 一個不是數字的數字)
2. string:字符串
3. boolean:true/false
4. null:一個對象爲空的佔位符
5. undefined:未定義,默認值
2. 引用數據類型:對象
- 變量
* 變量:一小塊儲存數據的內存空間
* Java語言是強類型語言,而JavaScript是弱類型的語言。
* 強類型:開闢空間時,定義了空間存儲數據的數據類型,只能存儲指定數據類型的數據
* 弱類型:開闢空間時,不定義存儲的數據類型,能夠存聽任意數據類型的數據
* 語法:var 變量名 = 初始化的值;
- 運算符
1. 一元運算符:只有一個運算數的運算符
++,--,+(正號)
2. 算數運算符
+,-,*,/,%...
3. 賦值運算符
=,+=,-=
4. 比較運算符
<,>,<=,>=,==,===(全等於)
==:數值大小相等便可,不須要數據類型也同樣
===:大小相等,數據類型同樣
5. 邏輯運算符
&& ,||,!
6. 三元運算符
?:
- 流程控制語句
1. if...else...
2. switch
3. while
4. do...while
5. for
- JS特殊語法
每行;可寫,可省略
用var定義爲局部變量,不用var則爲全局變量
基本對象
- Function函數對象
1. var fun = new Function(形參,方法體) (不經常使用)
2. function 方法名(形參){ 方法體 }
3. var 方法名 = function(形參){ 方法體 }
- Array數組對象
- 建立數組
- var arr = new Array(元素列表)
- var arr = new Array(默認長度)
- var arr = [元素列表]
- 方法
- join(參數):將數組中的元素按指定分隔符拼接成字符串
- push(參數):向數組末尾添加一個或多個元素,並返回新的數組長度
- 屬性
- 特色
- JS中,數組元素的類型是能夠變的
- JS中,數組長度是可變的
- Boolean
- Date日期對象
- 建立
var date = new Date()
- 方法
- toLocaleString,返回當前date對應的時間本地字符串格式
- getTime(),獲取1970年1月1日零點到如今的毫秒值
- Math
- 建立
特色:不用建立直接使用。Math.方法名();
- 方法
random():返回一個0~1之間的隨機數 (含0不含1)
cell():對數進行向上取整
floor():對數進行向下取整
round():四捨五入取整
- 屬性
PI
- Number
- String
- RegExp正則表達式對象
- 正則表達式:定義字符串的組成規則。
- 單個字符
如:[a] [ab] [a-zA-Z0-9_]
- 特殊符號表明特殊含義的單個字符
\d:單個數字字符
\w:[a-zA-Z0-9_]
- 量詞符號
" ? ": 表示0次或1次
" * ": 表示出現0次或屢次
" + ": 出現1次或屢次
{m,n}: 表示m<= X <=n
m若是缺省:{,n}最多n次 ; n若是缺省:{m,}最少m次
- 開始結束符號
^: 開始符號
$: 結束符號
- 正則對象
- 建立
- var reg = new RegExp("正則表達式")
- var reg = /^正則表達式&/
- 方法
- test(參數):驗證指定的字符串是否符合正則定義的規則
- Global
- 特色:全局對象,Global中封裝的方法不須要對象就能夠直接調用
- 方法:
encodeURI(): url 編碼
decodeURI(): url 解碼
encodeURIComponent(): url 編碼,編碼的字符更多
decodeURIComponent(): url 解碼
parseInt(): 將字符串轉成數字,逐一判斷每一個字符是否爲數字,直到不是數字爲止,將前面數字部分轉爲number
eval(): 將JavaScript字符串,並把它做爲腳本代碼來執行
var code = "alert("123")"; //code本爲字符串
eval(code); //被做爲腳本執行,將彈出123
BOM
- 概念:Browser Object Model 瀏覽器對象模型
* 瀏覽器的各個組成部分封裝成的對象
- 組成:
- window :窗口對象
- Navigator:瀏覽器對象
- Screen:顯示器屏幕對象
- History:歷史記錄對象
- Location:地址欄對象
- window:窗口對象
- 建立
- 方法
- 與彈出窗口有關的方法
- alert("Hello") = window.alert("Hello") 顯示一個帶有一段消息各一個確認按鈕的警告框
- confim() 顯示帶有一段消息以及確認按鈕和取消按鈕的對話框。
- 若是用戶點擊肯定返回 true
- 若是用戶點擊取消返回 false
- prompt() 顯示可提示用戶輸入的對話框。
- 與打開和關閉有關的方法
- close() 關閉瀏覽器窗口
- open("網址") 打開一個新的瀏覽器窗口
- 與定時器有關的方法
- setTimeout() 設定定時器
- clearTimeout() 關閉定時器
- setInterval() 設定循環定時器
- clearInterval() 關閉循環定時器
- 屬性
1. 獲取其餘BOM對象
hiatory、location、Navigator、Screan
2. 獲取DOM對象
document
- 特色
* 不須要建立能夠直接使用
* window引用能夠省略。
- Location地址欄對象
- 建立(獲取)
- window.location
- location
- 方法
屬性javascript
- History歷史記錄對象
- 建立(獲取)
- window.history
- history
方法html
- back() 加載 history 列表中的前一個URL
- forward() 加載 history 列表下一個URL
- go() 加載 history 列表中某個具體頁面
- 屬性
DOM
- 概念:Docunent Object Model 文檔對象模型
- 將標記語言文檔的各個組成部分,封裝成對象。可使用這些對象,對標記語言文檔進行CRUD的動態操做
- W3S DOM 標準被分爲3個不一樣的部分
* 核心 DOM - 針對任何結構化文檔的標準模型
1. Document:文檔對象
2. Element:元素對象
3. Attribute:屬性對象
4. Text:文本對象
5. Comment:註釋對象
* Node:節點對象,其餘5個對象的父對象
* XML DOM - 針對 XML 文檔的標準模型
* HTML DOM - 針對 HTML 文檔的標準模型
- 核心 DOM 模型
- Document:文檔對象
- 建立(獲取):在HTML中能夠用window對象獲取
- window.document
- document
- 方法
- 獲取Element對象
- getElementById():根據id得到屬性對象,id屬性值通常惟一
- getElementsByTagName():根據元素標籤名稱獲取元素對象們。返回值爲一個數組
- getElementsByClassName():根據class屬性值獲取元素對象們。返回值爲一個數組
- getElementsByName():根據name屬性值獲取元素對象們。返回值爲一個數組
- 建立其餘DOM對象
- createAttribute(name):建立屬性
- createComment()
- createElement():建立標籤
- createTextNode():建立節點
- 屬性
- Element:元素對象
- 獲取/建立:經過document來完成
- 方法
- removeAttribute():刪除屬性
- setAttribute():設置屬性
- Node:節點對象
- 特色:全部DOM對象均可以被認爲是一個節點
- 方法
- CRUDdom樹:
- appendChild():向節點的子節點列表的結尾添加一個新的子節點
- removeChild():刪除(並返回)當前節點的指定子節點
- replaceChild():用新的節點替換子節點
- 屬性
- HTML DOM 模型
1. 標籤體的設置和獲取:innerHTML
2. 使用html元素對象的屬性
* 查看API
3. 控制元素樣式
1. 使用元素的style屬性設置
* div.style.border = "1px solid red";
font-size --> fontSize
2. 提早定義好類選擇器的樣式
* div.className = "d1";
事件監聽機制
- 概念:某些組件被執行了某些操做後,觸發某些代碼的執行。
1. 事件:某些操做 如:單擊事件,雙擊事件,鍵盤事件,鼠標事件
2. 事件源:組件。如:按鈕 文本輸入框
3. 監聽器:代碼
4. 註冊監聽:將事件,事件源,監聽器結合在一塊兒。當事件源上發生了某個事件,則觸發執行某個監聽器代碼。
- 常見的事件
- 點擊事件
- onclick:單擊事件
- ondblclick:雙擊事件
- 焦點事件
- onblur:失去焦點
- onfocus:得到焦點
- 加載事件
- 鼠標事件
- onmousedown 鼠標被按下
- onmouseup 鼠標被鬆開
- onmousemove 鼠標被移動
- onmouseover 鼠標移動到元素之上
- onmouseout 鼠標從元素上移開
- 鍵盤事件
- onkeydown 某個按鍵被按下
- onkeyup 某個按鍵被鬆開
- onkeypress 某個按鍵被按下並鬆開
- 選擇和改變
- onchange 域的內容被改變
- onselect 文本被選中
- 表單事件
- onsubmit 確認按鈕被點擊
- onreset 重置按鈕被點擊