<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 | , |