<script>
// ... JavaScript 程式碼 ...
function mOver(xx) { xx.style.color = "red"; xx.innerHTML = "停留在此"}
function mOut(xx) { xx.style.color = "blue"; xx.innerHTML = "已經移走"}
</script>
<span onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:#ee9">
請移過來
</span>
檔案代碼:( 使用 JavaScript 存取和操作 HTML 元素的範例 )
<form id="form1" action="#JSoutput">
<button id="btn" name="按鈕01" type="submit" value="OK" style="color:#a00">
提交
</button>
</form>
<button onclick="disableEmt()"> 禁用上面按鈕 </button>
<button onclick="enableEmt()"> 啟用上面按鈕 </button>
<button onclick="Fn1()"> 取得元素名稱 </button> <span id="d1"></span> <br>
<button onclick="Fn2()"> 取得元素類型 </button> <span id="d2"></span> <br>
<button onclick="Fn3()"> 取得元素的值 </button> <span id="d3"></span> <br>
<button onclick="Fn4()"> 取得元素上的文字 </button> <span id="d4"></span> <br>
<button onclick="Fn5()"> 取得元素的ID </button> <span id="d5"></span> <br>
<button onclick="Fn6()"> 元素所屬表單的ID </button> <span id="d6"></span><br>
<button onclick="Fn7()"> 元素的innerHTML,顯示innerHTML</button>
<span id="d7"></span><br>
<button onclick="Fn71()"> 元素的innerText,顯示innerHTML</button>
<span id="d71"></span><br>
<button onclick="Fn8()"> 元素的innerText(文字),顯示innerText</button>
<span id="d8"></span><br>
<button onclick="Fn81()"> 元素的innerHTML,顯示innerText</button>
<span id="d81"></span><br>
<script>
function disableEmt() { //禁用元素
document.getElementById("btn").disabled = true; }
function enableEmt() { //啟用元素
document.getElementById("btn").disabled = false; }
function Fn1() { //取得元素名稱
var x = document.getElementById("btn").name;
document.getElementById("d1").innerHTML = x; }
function Fn2() {
var x = document.getElementById("btn").type;
document.getElementById("d2").innerHTML = x; }
function Fn3() {
var x = document.getElementById("btn").value;
document.getElementById("d3").innerHTML = x; }
function Fn4() {
var x = document.getElementById("btn").innerHTML;
document.getElementById("d4").innerHTML = x; }
function Fn5() {
var x = document.getElementById("btn").id;
document.getElementById("d5").innerHTML = x; }
function Fn6() {
var x = document.getElementById("btn").form.id;
document.getElementById("d6").innerHTML = x; }
function Fn7() { //取得表單id="form1"內的innerHTML,顯示innerHTML
var x = document.getElementById("form1").innerHTML;
document.getElementById("d7").innerHTML = x; }
function Fn71() { //取得表單id="form1"內的innerText,顯示innerHTML
var x = document.getElementById("form1").innerText;
document.getElementById("d71").innerHTML = x; }
function Fn8() { //取得表單id="form1"的innerText(文字),顯示innerText
var x = document.getElementById("form1").innerText;
document.getElementById("d8").innerText = x; }
function Fn81() { //取得表單id="form1"的innerHTML,顯示innerText
var x = document.getElementById("form1").innerHTML;
document.getElementById("d81").innerText = x; }
</script>
var x; x = 100; 也可以在宣告變數的同時 指定值: var x = 100;
| \作用 關鍵字\ | Scope 區塊範圍 | Redeclare 重新聲明 | Reassign 重新分配 | Binds this 綁定 this |
|---|---|---|---|---|
| var | 否 | 是 | 是 | 是 |
| let | 是 | 否 | 是 | 否 |
| const (常量) | 是 | 否 | 否 | 否 |
console.log(typeof 'hello'); // 輸出 string console.log(typeof 123); // 輸出 number console.log(typeof true); // 輸出 boolean
| 運算子 | 例子 | 說明 |
|---|---|---|
| = | x = y | 將 y 值 指定給 x 變數 |
| += | x += y | 意思跟 x = x + y 一樣,將 x y 相加後的值指定回 x 變數 |
| -= | x -= y | 意思跟 x = x - y 一樣,將 x y 相減後的值指定回 x 變數 |
| *= | x *= y | 意思跟 x = x * y 一樣,將 x y 相乘後的值指定回 x 變數 |
| /= | x /= y | 意思跟 x = x / y 一樣,將 x y 相除後的值指定回 x 變數 |
| %= | x %= y | 意思跟 x = x % y 一樣,將 x 除以 y 的餘數指定回 x 變數 |
| **= | x **= y | 意思跟 x = x ** y 一樣,將 x 的 y 次方值指定回 x 變數 |
| <<= | x <<= y | 意思跟 x = x << y 一樣,將 x 所有位元左移 y 位,右邊的位元補入 0 後的值指定回 x 變數 |
| >>= | x >>= y | 意思跟 x = x >> y 一樣,將 x 所有位元右移 y 位,最左邊的位元 (sign bit) 補入跟原本最左位元一樣值後指定回 x 變數 |
| >>>= | x >>>= y | 跟 >>= 一樣,但最左邊的位元補 0 |
| &= | x &= y | 意思跟 x = x & y 一樣,將 x y 做位元 AND 運算後的值指定回 x 變數 |
| ^= | x ^= y | 意思跟 x = x ^ y 一樣,將 x y 做位元 XOR 運算後的值指定回 x 變數 |
| |= | x |= y | 意思跟 x = x | y 一樣,將 x y 做位元 OR 運算後的值指定回 x 變數 |
| 運算子 | 例子 | 說明 |
|---|---|---|
| == | 3 == var1 '3' == var1 | 如果兩邊相等就返回 true。 (== 兩個 =號) |
| != | var1 != 4 var2 != '3' | 如果兩邊不相等就返回 true |
| === | 3 === var1 | 跟 == 的差異在於,=== 不會自動嘗試轉型,型態和值都一樣才會返回 true。 (=== 三個 =號) |
| !== | var1 !== '3' 3 !== '3' | 跟 != 的差異在於,!== 不會自動嘗試轉型,型態或值不一樣都會返回 true |
| > | var2 > var1 var1 > 2 | 如果左邊運算元大於右邊的就返回 true |
| >= | var2 >= var1 var1 >= 3 | 如果左邊運算元大於或等於右邊的就返回 true |
| < | var2 < var1 var1 < 2 | 如果左邊運算元小於右邊的就返回 true |
| <= | var2 <= var1 var1 <= 3 | 如果左邊運算元小於或等於右邊的就返回 true |
| 運算子 | 例子 | 說明 |
|---|---|---|
| + | var1 + 10 | 加法 |
| - | var1 - var2 | 減法 |
| * | 10 * 10 | 乘法 |
| / | var1 / 10 | 除法 |
| % | 12 % 5 | (餘數) 模數運算子 (Remainder),以某運算式的值除以另一個運算式的值,並傳回餘數。12 % 5 等於 2 |
| ++ | ++10 ++x x++ | 遞增運算子 (Increment),每次將變數的值加一。 如果運算子在變數之前,則會在執行運算式之前修改值。如果運算子在變數之後,則會在執行運算式之後修改值。 例1: ++10 等於 11 例2: j = ++k 則 j 的值是 k 的原始值加一 例3: j = k++ 則 j 的值是 k 的原始值,k 會在其值指派給 j 之後遞增 |
| -- | --10 --x x-- | 遞減運算子 (Decrement),每次將變數的值減一。 如果運算子在變數之前,則會在執行運算式之前修改值。如果運算子在變數之後,則會在執行運算式之後修改值。 例1: --10 等於 9 例2: j = --k 則 j 的值是 k 的原始值減一 例3: j = k-- 則 j 的值是 k 的原始值,k 會在其值指派給 j 之後遞減 |
| - | -x -3 | 一元負運算子 (Unary negation),例如 -x 如果 x 是 3 則 -x 就是負數 3 |
| + | +3 +true | 一元正運算子 (Unary plus),用在數值上沒啥意義;通常用來做型別轉換,將運算元轉成數值型態。例如 +true 會將布林值 true 轉型成數值 1 |
| 運算子 | 例子 | 說明 |
|---|---|---|
| && | expr1 && expr2 | Logical AND,如果 expr1 和 expr2 都是 true,就會傳回 true, 否則傳回 false |
| || | expr1 || expr2 | Logical OR,如果 expr1 或 expr2 是 true,就會傳回 true,否則傳回 false |
| ! | !expr | Logical NOT,如果 expr 是 true,就傳回 false,否則傳回 true |
| 運算子 | 例子 | binary 運算 | 結果 | 說明 |
|---|---|---|---|---|
| & | 15 & 9 | 1111 & 1001 = 1001 | 9 | Bitwise AND 運算,如果兩個位元都是 1,結果就是 1,否則是 0 |
| | | 15 | 9 | 1111 | 1001 = 1111 | 15 | Bitwise OR 運算,如果任何一個位元是 1,結果就是 1,否則是 0 |
| ^ | 15 ^ 9 | 1111 ^ 1001 = 0110 | 6 | Bitwise XOR 運算,如果位元不相同,結果是 1,否則是 0 |
| ~ | ~15 | ~00000000...00001111 = 11111111...11110000 | -16 | Bitwise NOT 運算,將所有位元的 0 變成 1,1 變成 0 |
| 運算子 | 例子 | 說明 |
|---|---|---|
| << | 9 << 2 = 36 | 左移運算 (Left shift),將所有位元向左移 n 個位置,右邊的位元補入 0 |
| >> | 9 >> 2 = 2 | 右移運算 (Sign-propagating right shift),將所有位元向右移 n 個位置,最左邊的位元 (sign bit) 補入跟原本最左位元一樣值,保持正負數一致 |
| >>> | 19 >>> 2 = 4 | 補零右移 (Zero-Fill Right Shift),跟 >> 一樣,但最左邊的位元補 0 |
| 運算子 | 優先權 |
|---|---|
| member | . [ ] |
| call / create instance | ( ) new |
| negation/increment | ! ~ - + ++ -- typeof void delete |
| multiply/divide | * / % |
| addition/subtraction | + - |
| bitwise shift | << >> >>> |
| relational | < <= > >= in instanceof |
| equality | == != === !== |
| bitwise-and | & |
| bitwise-xor | ^ |
| bitwise-or | \ |
| logical-and | && |
| logical-or | || |
| conditional | ?: |
| assignment | = += -= *= /= %= <<= >>= >>>= &= ^= |
| comma | , |