邏輯運算符用於測定變量或值之間的邏輯。html
給定 x=6 以及 y=3,下表解釋了邏輯運算符:程序員
運算符 | 描述 | 例子 |
---|---|---|
&& | and | (x < 10 && y > 1) 爲 true |
|| | or | (x==5 || y==5) 爲 false |
! | not | !(x==y) 爲 true |
JavaScript 還包含了基於某些條件對變量進行賦值的條件運算符。web
variablename=(condition)?value1:value2數組
JavaScript 一般用於操做 HTML 元素。瀏覽器
如需從 JavaScript 訪問某個 HTML 元素,您可使用 document.getElementById(id) 方法。服務器
請使用 "id" 屬性來標識 HTML 元素:cookie
經過指定的 id 來訪問 HTML 元素,並改變其內容:app
<!DOCTYPE html>
<html>
<body>
<h1>My First Web Page</h1>
<p id="demo">My First Paragraph</p>
<script>
</script>
</body>
</html>
document.getElementById("demo").innerHTML="My First JavaScript";
親自試一試dom
JavaScript 由 web 瀏覽器來執行。在這種狀況下,瀏覽器將訪問 id="demo" 的 HTML 元素,並把它的內容(innerHTML)替換爲 "My First JavaScript"。函數
下面的例子直接把 <p> 元素寫到 HTML 文檔輸出中:
<!DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <script> </script> </body> </html> document.write("<p>My First JavaScript</p>");
請使用 document.write() 僅僅向文檔輸出寫內容。
若是在文檔已完成加載後執行 document.write,整個 HTML 頁面將被覆蓋:
<!DOCTYPE html> <html> <body> <h1>My First Web Page</h1> <p>My First Paragraph.</p> <button onclick="myFunction()">點擊這裏</button> <script> function myFunction() { document.write("糟糕!文檔消失了。"); } </script> </body> </html>
請使用 switch 語句來選擇要執行的多個代碼塊之一。
switch(n) { case 1: 執行代碼塊 1 break; case 2: 執行代碼塊 2 break; default: n 與 case 1 和 case 2 不一樣時執行的代碼 }
工做原理:首先設置表達式 n(一般是一個變量)。隨後表達式的值會與結構中的每一個 case 的值作比較。若是存在匹配,則與該 case 關聯的代碼塊會被執行。請使用 break 來阻止代碼自動地向下一個 case 運行。
JavaScript for/in 語句循環遍歷對象的屬性:
var person={fname:"John",lname:"Doe",age:25}; for (x person) { txt=txt + person[x]; }
in
do/while 循環是 while 循環的變體。該循環會執行一次代碼塊,在檢查條件是否爲真以前,而後若是條件爲真的話,就會重複這個循環。
do { 須要執行的代碼 } while (條件);
下面的例子使用 do/while 循環。該循環至少會執行一次,即便條件是 false,隱藏代碼塊會在條件被測試前執行:
do { x=x + "The number is " + i + "<br>"; i++; } while (i<5);
break 語句用於跳出循環。
continue 用於跳過循環中的一個迭代。
咱們已經在本教程稍早的章節中見到過 break 語句。它用於跳出 switch() 語句。
break 語句可用於跳出循環。
break 語句跳出循環後,會繼續執行該循環以後的代碼(若是有的話):
for (i=0;i<10;i++) { if (i==3) { } x=x + "The number is " + i + "<br>"; } break;
因爲這個 if 語句只有一行代碼,因此能夠省略花括號:
for (i=0;i<10;i++) { x=x + "The number is " + i + "<br>"; } if (i==3) break;
continue 語句中斷循環中的迭代,若是出現了指定的條件,而後繼續循環中的下一個迭代。
該例子跳過了值 3:
for (i=0;i<=10;i++) { if (i==3) continue; x=x + "The number is " + i + "<br>"; }
正如您在 switch 語句那一章中看到的,能夠對 JavaScript 語句進行標記。
如需標記 JavaScript 語句,請在語句以前加上冒號:
label:
語句
break 和 continue 語句僅僅是可以跳出代碼塊的語句。
break labelname; continue labelname;
continue 語句(帶有或不帶標籤引用)只能用在循環中。
break 語句(不帶標籤引用),只能用在循環或 switch 中。
經過標籤引用,break 語句可用於跳出任何 JavaScript 代碼塊:
cars=["BMW","Volvo","Saab","Ford"]; list: { document.write(cars[0] + "<br>"); document.write(cars[1] + "<br>"); document.write(cars[2] + "<br>"); break list; document.write(cars[3] + "<br>"); document.write(cars[4] + "<br>"); document.write(cars[5] + "<br>"); }
try 語句測試代碼塊的錯誤。
catch 語句處理錯誤。
throw 語句建立自定義錯誤。
當 JavaScript 引擎執行 JavaScript 代碼時,會發生各類錯誤:
多是語法錯誤,一般是程序員形成的編碼錯誤或錯別字。
多是拼寫錯誤或語言中缺乏的功能(可能因爲瀏覽器差別)。
多是因爲來自服務器或用戶的錯誤輸出而致使的錯誤。
固然,也多是因爲許多其餘不可預知的因素。
當錯誤發生時,當事情出問題時,JavaScript 引擎一般會中止,並生成一個錯誤消息。
描述這種狀況的技術術語是:JavaScript 將拋出一個錯誤。
try 語句容許咱們定義在執行時進行錯誤測試的代碼塊。
catch 語句容許咱們定義當 try 代碼塊發生錯誤時,所執行的代碼塊。
JavaScript 語句 try 和 catch 是成對出現的。
try { //在這裏運行代碼 } catch(err) { //在這裏處理錯誤 }
在下面的例子中,咱們故意在 try 塊的代碼中寫了一個錯字。
catch 塊會捕捉到 try 塊中的錯誤,並執行代碼來處理它。
Arguments 對象
1 Arguments 對象 2 3 JavaScript 函數有個內置的對象 arguments 對象. 4 5 argument 對象包含了函數調用的參數數組。 6 7 經過這種方式你能夠很方便的找到最後一個參數的值: 8 9 10 實例 11 12 x = findMax(1, 123, 500, 115, 44, 88); 13 14 function findMax() { 15 var i, max = 0; 16 for (i = 0; i < arguments.length; i++) { 17 if (arguments[i] > max) { 18 max = arguments[i]; 19 } 20 } 21 return max; 22 } 23 24 嘗試一下 » 25 或者建立一個函數用來統計全部數值的和: 26 27 28 實例 29 30 x = sumAll(1, 123, 500, 115, 44, 88); 31 32 function sumAll() { 33 var i, sum = 0; 34 for (i = 0; i < arguments.length; i++) { 35 sum += arguments[i]; 36 } 37 return sum; 38 }
JavaScript Window Navigator -------------------------------------------------------------------------------- window.navigator 對象包含有關訪問者瀏覽器的信息。 -------------------------------------------------------------------------------- Window Navigator window.navigator 對象在編寫時可不使用 window 這個前綴。 實例 <div id="example"></div> <script> txt = "<p>Browser CodeName: " + navigator.appCodeName + "</p>"; txt+= "<p>Browser Name: " + navigator.appName + "</p>"; txt+= "<p>Browser Version: " + navigator.appVersion + "</p>"; txt+= "<p>Cookies Enabled: " + navigator.cookieEnabled + "</p>"; txt+= "<p>Platform: " + navigator.platform + "</p>"; txt+= "<p>User-agent header: " + navigator.userAgent + "</p>"; txt+= "<p>User-agent language: " + navigator.systemLanguage + "</p>"; document.getElementById("example").innerHTML=txt; </script> 嘗試一下 » -------------------------------------------------------------------------------- 警告!!! 來自 navigator 對象的信息具備誤導性,不該該被用於檢測瀏覽器版本,這是由於: •navigator 數據可被瀏覽器使用者更改 •一些瀏覽器對測試站點會識別錯誤 •瀏覽器沒法報告晚於瀏覽器發佈的新操做系統 -------------------------------------------------------------------------------- 瀏覽器檢測 因爲 navigator 可誤導瀏覽器檢測,使用對象檢測可用來嗅探不一樣的瀏覽器。 因爲不一樣的瀏覽器支持不一樣的對象,您可使用對象來檢測瀏覽器。例如,因爲只有 Opera 支持屬性 "window.opera",您能夠據此識別出 Opera。 例子:if (window.opera) {...some action...}