逻辑运算符用于测定变量或值之间的逻辑。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...}