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-->
<!--则其他的函数不能再引用这个变量-->

 

posted @ 2019-02-25 20:31  星满夜空  阅读(281)  评论(0编辑  收藏  举报