JavaScript基础知识二
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JavaScript基础</title> </head> <body> <!--JS能够写入HTML输出--> <!--只能在HTML输出中使用 document.write--> <script> document.write("<h1>这是一个标题</h1>"); document.write("<p>这个一个段落</p>"); </script> <br /> <!--如果在文档加载后使用 document.write(比如函数),则会覆盖整个文档--> <!--<h1>这是一个标题</h1>--> <!--<p>这是一个段落</p>--> <!--<button onclick="test()">点击这里发现前面的标题和段落都没了</button>--> <!--<script>--> <!--function test() {--> <!--document.write("在函数中使用document.write会覆盖整个文档");--> <!--}--> <!--</script>--> <br /> <!--JS能够对事件做出反映--> <!--alert()函数一般用于代码测试--> <button type="button" onclick="alert('Welcome!')">点击这里会跳出一个提示框</button> <br /> <!--JS能够改变HTML内容--> <p id="demo"> 我这个段落设置了一个id,这样在JS中就能写一个函数来改变我的值 </p> <script> function myFunction() { x = document.getElementById("demo"); // 找到元素 x.innerHTML="我变成这样了"; // 改变内容 } </script> <button type="button" onclick="myFunction()">点击这里触发事件</button> <br /> <!--JS能够改变HTML图像--> <script> function changeImage() { element = document.getElementById("myimage") if (element.src.match("bulbon")) { element.src="海绵宝宝2.jpg"; } else { element.src="海绵宝宝1.gif"; } } </script> <img id="myimage" onclick="changeImage()" src="海绵宝宝2.jpg" /> <p>点击图像会改变该图像内容</p> <br /> <!--JS能够改变HTML元素样式--> <p id="demo1"> 点击按钮后我的字体颜色会被改变 </p> <script> function myFunction1() { x = document.getElementById("demo1"); // 找到元素 x.style.color = "#287eff"; // 改变样式 } </script> <button type="button" onclick="myFunction1()">点击按钮触发事件</button> <br /> <!--JS能够验证输入--> <p>请输入数字,如果不是数字,浏览器会弹出提示框</p> <input id="demo2" type="text" /> <script> function myFunction2() { var x = document.getElementById("demo2").value; if (x == "" || isNaN(x)) { alert("这不是数字"); } } </script> <button type="button" onclick="myFunction2()">点击提交结果</button> <br /> <!--JS数组--> <script> var i; var cars = new Array(); cars[0] = "Audi"; cars[1] = "BMW"; cars[2] = "Volvo"; // 如果这样写: // var i = 0; // for (; i <cars.length; i++ ) // 注意前面的那个分号不能丢 // i++ 也可以放在document.write()下面一行 for (i = 0; i <cars.length; i++) { document.write(cars[i] + "<br />"); } </script> <!--JS对象--> <!--JS对象由花括号分隔,在括号内部,对象的属性以名称和值对的形式定义--> <script> var person = { firstname: "Bill", lastname: "Gates", id : 5566 }; document.write(person.lastname + "<br />"); document.write(person["lastname"] + "<br />"); </script> <!--Undefined和Null--> <!--Undefined表示变量不含值--> <!--可以通过将变量的值设为null来清空变量--> <script> var apple; var car = "Volvo"; document.write(apple + "<br />"); document.write(car + "<br />"); var car = null; document.write(car + "<br />"); </script> <!--创建JS对象及访问其属性--> <script> person = new Object(); person.firstname = "Bill"; person.lastname = "Gates"; person.age = 56; person.eyecolor = "blue"; document.write(person.firstname + " is " + person.age + " years old." + "<br />"); var message = "Hello World!"; var x = message.length; document.write("变量message的值的长度为:" + x + "<br />"); var y = message.toUpperCase(); document.write("变量message的值的大写形式为:" + y + "<br />"); </script> <!--JS调用带参数的函数的方法--> <!--JS的变量和参数必须以一致的顺序出现--> <!--也可以使用不同的参数来调用该函数--> <button type="button" onclick="myFunction3('Bill Gates', 'CEO')">点击这个按钮可以调用带参数的函数</button> <button type="button" onclick="myFunction3('Shawn_Huang', 'student')">点击这个按钮可以调用带另一种参数的函数</button> <script> function myFunction3(name, job) { alert("Welcome " + name + ", the " + job); } </script> <!--带有返回值的函数--> <!--通过return语句实现,函数遇到return停止执行--> <!--但是JS不会停止执行--> <p>使用return来获取函数返回值</p> <p id="demo4"></p> <script> function myFunction4(a, b) { return a * b; } document.getElementById("demo4").innerHTML=myFunction4(4, 3); </script> <!--使用switch语句选择要执行的多个代码块之一--> <!--另外,可以使用default来设置默认消息--> <button onclick="myFunction5()">点击这里显示今天是礼拜几</button> <p id="demo5"></p> <script> function myFunction5() { var x; var d = new Date().getDay(); switch (d) { case 0: x = "Today it's Sunday"; break; case 6: x = "Today it's Saturday"; break; default: x = "Looking forward to the Weekend"; } document.getElementById("demo5").innerHTML=x; } </script> <!--JS的for/in循环用来遍历对象的属性--> <button onclick="myFunction6()">点这里开启for/in循环</button> <p id="demo6"></p> <script> function myFunction6() { var x; var txt = ""; var person = {firstname: "Bill", lastname: "Gates", age: 56}; for (x in person) { txt = txt + person[x] + " "; } document.getElementById("demo6").innerHTML=txt; } </script> <br /> <!--while循环--> <button onclick="myFunction7()">点这开启while循环</button> <p id="demo7"></p> <script> function myFunction7() { var x = "", i = 0; while (i < 5) { x = x + "The number is " + i + "<br />"; i ++; } document.getElementById("demo7").innerHTML=x; } </script> <!--do/while循环是while循环的变体--> <button onclick="myFunction8()">点我执行do/while循环</button> <p id="demo8"></p> <script> function myFunction8() { var x = "", i = 0; do { x = x + "The number is " + i + "<br />"; i ++; // 这个不能忘了加进去 } while (i < 5); document.getElementById("demo8").innerHTML=x; } </script> <!--Break和Continue语句--> <button onclick="myFunction9()">点我执行break语句</button> <p id="demo9"></p> <script> function myFunction9() { var x = "", i = 0; for (i = 0; i < 10; i++) { if (i == 3) break; // 这里可以省略花括号 x = x + "The number is " + i + "<br />"; } document.getElementById("demo9").innerHTML=x; } </script> <button onclick="myFunction10()">点我执行Continue语句</button> <p id="demo10"></p> <script> function myFunction10() { var x = "", i = 0; for (i = 0; i < 10; i++) { if (i == 3) continue; x = x + "The number is " + i + "<br />"; } document.getElementById("demo10").innerHTML=x; } </script> <!--continue语句只能使用在循环中--> <!--break语句可用于循环或switch中--> <!--通过标签引用,break语句可用于跳出任何JS代码块--> <script> 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>"); } </script> <!--测试和捕捉错误--> <button onclick="message()">点我查看JS测试和捕捉错误方法</button> <p id="demo11"></p> <script> var txt = ""; function message() { try { addlert("Welcome guest!"); } catch(err) { txt = "this page has an error.\n\n"; txt += "错误描述:" + err.message + "\n\n"; alert(txt); } document.getElementById("demo11").innerHTML=txt; } </script> <!--throw,创建或抛出异常--> <script> function myFunction12() { try { var x = document.getElementById("domo12").value; if (x == "") throw "值为空"; if (isNaN(x)) throw "不是数字"; if (x > 10) throw "太大"; if (x < 5) throw "太小"; } catch (err) { var y = document.getElementById("mess"); y.innerHTML="错误:" + err + "."; } } </script> <p>请输入5到10之间的数字:</p> <input id="demo12" type="text"> <button type="button" onclick="myFunction12()">测试throw用法</button> <p id="mess"></p> </body> </html> <!--JS变量命名规则: --> <!-- 1.必须以字母开头 2.以$和_开头没有错,但一般不用 3.大小写是不一样的两个变量 --> <!--JS中,如果把数字与字符串相加,结果将变为字符串--> <!--在一个函数中如果一个变量这样声明:age = 10 --> <!--则在另一个函数中也能引用这个变量--> <!--而如果一个函数中这样声明一个变量:var age = 10--> <!--则其他的函数不能再引用这个变量-->