網頁
JavaScript
JavaScript屬於高階的程式語言,並支援物件導向(OOP),使一部份計算及驗證的功能由用戶端電腦解決,減輕伺服器的計算資源及網路流量。
範例 : JS01.htm
範例 : JS02.htm
var 變數名稱
宣告變數
typeof 內容
傳回內容的屬性
let
區域內的變數,不影響原來的值
const
常數,不可更改
JavaScript真不愧是高階語言,超級聰明,數字完全不用管是int還是float,也完全不用擔心溢位問題,因為一個數字用了51個bit存…,編譯器會自己判斷是整數還是小數。
更扯的是,除了加會當作連接字串,字串和字串間竟然可以減乘除
NaN
(Not-a-Number)運算結果不為數字時,isNaN()可以檢查
Infinity
or-Infinity
無限或負無限
num.toString(進位)
轉成指定進位,空白代表10進位,傳回字串
num.toExponential()
轉成科學記號,傳回字串
num.toFixed()
固定小數點位數,傳回字串
num.toPrecision()
固定數字長度,傳回字串
Number()
任何變數轉成數字parseInt()
轉成整數parseFloat()
轉成小數str.length
取str的長度
str.indexOf("day")
找str中第一個day的首字的位置
str.lastIndexOf("day")
找str中最後一個day的首字的位置
找不到時return=-1
str.search("day")
搜尋day在str中的位置
slice(起點, 終點)
切割成子字串,負號代表顛倒過來
substring(起點, 終點)
切割成子字串,和slice差不多,但不能用負號
substr(起點, 長度)
切割成子字串,從起點開始取指定長度
replace(被替換的字串,替換上去的字串)
替換字串
str1.concat(str2)
str1後接上str2
str.toUpperCase()
轉大寫
str.toLowerCase()
轉小寫
str.trim()
幫你削掉多餘的空格
charAt(位置)
回傳指定位置的字元(char)
split(",")
依照,做分割
沒錯,你發現了… … 這不是和Java一樣的函式嗎!? JavaScript和Java真的87%像,學過Java後學JavaScript就會很快上手><
元素的值可以是數字,也可以是字串(Chrome不知道為什麼會怪怪的,IE就可以)
Array.isArray(ary)
ary是否為陣列
ary.length
取陣列長度
ary.pop()
取走陣列尾端的內容,回傳值為陣列尾端的內容
ary.push("內容")
將內容加在陣列的尾端,回傳值為新陣列的長度
ary.shift()
取走陣列頂端的內容,回傳值為陣列頂端的內容
ary.unshift("內容")
將內容加在陣列的頂端,回傳值為新陣列的長度
delete ary[index]
將該位置的內容導向undefined
ary.splice(加入的數量,刪除的數量,欲加入的內容)
拼接陣列,回傳陣列
ary1.concat(ary2)
ary1之後接上ary2,回傳陣列
ary.forEach()
尋訪陣列中的每個元素
ary.map()
依照指定方程式產生新的陣列,回傳陣列
ary.filter()
篩選出符合條件的元素,回傳陣列
ary.indexOf("內容")
尋找該內容的第一個出現位置,回傳數字
ary.find()
尋找符合條件的第一個內容,回傳元素
ary.findIndex()
尋找符合條件的第一個內容的位置,回傳數字
ary.sort()
依照字串的首字母排序
ary.reverse()
翻轉字串
比較數字大小較為麻煩,因為電腦會和字串一樣,從首字母開始比,然而這樣是不對的,所以要改成以下程式碼:
function(a, b){return a - b}
比較方程式,兩個兩個來比,如果是負值則a小,如果是正值則a大,依此類推
隨機排序
Math.max.apply(null, arr)
尋找最大值
Math.min.apply(null, arr)
尋找最小值
物件也可以排序
基本上和Java差不了多少
this.變數/函式
呼叫此範圍內的變數或函式<元素 事件="執行內容">
元素.addEventListener("事件",執行內容,事件捕捉/事件泡泡);
事件監聽
元素.removeEventListener("事件",執行內容);
document.write("欲顯示在網站上的內容")
印出內容在網站上
可以是文字,也可以是HTML標籤
alter("訊息方塊的內容")
跳出訊息方塊
存取HTML元素
.value
存取選取清單欄位的內容
.selectedIndex
存取清單第幾個編號
.options[i].text
存取清單第幾個<option>
標籤上的內容
.style.屬性=值
改變CSS樣式
.src='圖片路徑'
改變圖片
.innerHTML
存取元素的內容或HTML元素
console.log()
在執行欄顯示結果
window.print()
列印此頁
其實就是很簡單的if…else…或for迴圈,跟C和Java學的一模一樣,這邊就不多說了
引數可以是變數、常數、陣列或物件
ISO Date : (YYYY-MM-DD)
Short Date : (MM/DD/YYYY)
Long Date : (MMM DD YYYY)
Date.parse()
可以將日期轉成毫秒
Math.round(x)
x四捨五入
Math.pow(x, y)
x的y次方
Math.sqrt(x)
x開根號
Math.abs(x)
x的絕對值
Math.ceil(x)
上高斯符號
Math.floor(x)
下高斯符號
Math.sin(弧度)
sin,角度要轉成弧度
Math.cos(x)
cos,角度要轉成弧度
Math.min()
取最小值
Math.max()
取最大值
Math.random()
從0到1的隨機小數
Math.PI
PI常數
throw 字串/數字/布林常數
拋出錯誤document.getElementById(id)
找到符合id的元素,沒找到回傳null
document.getElementsByTagName(name)
找到符合選擇器的元素,沒找到回傳null
document.getElementsByClassName(name)
找到符合className的元素,沒找到回傳null
element.innerHTML = "內容"
element.屬性 = 值
element.style.屬性 = 值
element.setAttribute( "屬性" , "值" )
修改屬性值
document.write("欲顯示在網站上的內容")
印出內容在網頁上
document.createElement(元素)
創造新元素,創造完一定要呼叫 document.appendChild(元素)
document.appendChild(元素)
加入新元素
document.createTextNode("This is new.")
加入文字內容
document.removeChild(元素)
移除元素
元素.remove()
移除元素,新版本可用
document.replaceChild(新的元素, 舊的元素)
置換元素
document.createAttribute(屬性)
創造新屬性
document.body
找到<body>
元素
document.head
找到<head>
元素
document.querySelectorAll("p")
找到HTML裡所有的<p>
節點.nodeValue
取節點內的內容
節點.nodeName
取節點的標籤,唯讀
parentNode
childNodes[n]
第n個節點,從0開始
節點[n]
此節點下的第n個子節點
節點.length
節點下共有幾個子節點
firstChild = childNodes[0]
第一個子節點
lastChild
最後一個子節點
nextSibling
previousSibling
JSON是一種資料交換語言,該語言以易於讓人閱讀的文字為基礎,用來傳輸由屬性值或者序列性的值組成的資料物件。
"名稱1":"值1"
JSON基本單位{"名稱1":"值1","名稱2":"值2"}
JSON物件var string = JSON.parse(object)
將JSON型態(object)轉為JSON字串(string)var object = JSON.parse("text")
將JSON字串(text)轉成JS的物件(object)