Day11 JavaScript

简介: JavaScript
代码块
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script text="javascript">
        /*
            代码块:
                我们的程序是由一条一条语句构成的
                语句是按照自上向下的顺序一条一条执行的
                在JS中可以使用{}来为语句进行分组,
                同一个{}中的语句我们称为是一组语句,
                它们要么都执行,要么都不执行,
                一个{}中的语句我们也称为叫一个代码块
                在代码块的后边就不用再编写;了
                JS中的代码块,只具有分组的的作用,没有其他的用途
                    代码块内的内容,在外部是完全可见的

        */

        {
            alert("BanQ");
            console.log("半晴Miko");

        }
    </script>

</head>

<body>

</body>

</html>
流程控制语句
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script text="javascript">

        /*
            流程控制语句:
                JS中的程序是从上到下一行一行执行的
                通过流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行

                语句的分类:
                    1.条件判断语句
                    2.条件分支语句
                    3.循环语句

        */

        /*
            条件判断语句:
                使用条件判断语句可以在执行某个语句之前进行判断,
                如果条件成立才会执行语句,条件不成立则语句不执行。

                if语句:
                    语法一:
                        if(条件表达式)
                            语句

                        if语句在执行时,会先对条件表达式进行求值判断,
                        如果条件表达式的值为true,则执行if后的语句,
                        如果条件表达式的值为false,则不会执行if后的语句。
                        
                        if语句只能控制紧随其后的那个语句,
                        如果希望if语句可以控制多条语句,可以将这些语句统一放到代码块中
                        if语句后的代码块不是必须的,但是在开发中尽量写上代码块,即使if后只有一条语句
                    语法二:
                        if(条件表达式){
                            语句
                        }esle {
                            语句
                        }

                        if...else...语句
                        当该语句执行时,会先对if后的条件表达式进行求值判断,
                        如果该值为true,则执行if后的语句
                        如果该值为false,则执行else后的语句
                    语法三:
                        if(条件表达式){
                            语句
                        }esle if(条件表达式){
                            语句
                        }eslr if(条件表达式){
                            语句
                        }esle {
                            语句
                        }

                        if...else if...else
                        当该语句执行时,会从上到下依次对条件表达式进行求值判断
                        如果值为true,则执行当前语句
                        如果值为false,则继续向下判断
                        如果所有的条件都不满足,则执行最后一个else后的语句
                        该语句中,只会有一个代码块被执行,一旦代码块执行了,则直接结束语句

        */
        if (false) {
            alert("False"); // 不执行
        }

        var a = 10;
        if (a > 5) {
            alert("大于"); // 输出 大于
        } else {
            alert("小于");
        }

        var b = 5;
        if (b > 5) {
            alert("b > 5");
        } else if (b > 3) {
            alert("b > 3");// 输出 b > 3
        } else {
            alert("都不成立");
        }



        /*
            条件分支语句:
                也叫做switch语句

                语法:
                    switch(条件表达式){
                        case 表达式:
                            语句
                            break;
                        case 表达式:
                            语句
                            break;
                        case 表达式:
                            语句
                            break;
                        default:
                            语句
                            break;
                    }
                
                执行流程:
                    switch. ..case..语句
                    在执行时会依次将case后的表达式的值和switch后的条件表达式的值进行全等比较,
                    如果比较结果为true,则从当前case处开始执行代码。
                        当前case后的所有的代码都会执行,我们可以在case的后边跟着一个break关键字
                        这样可以确保只会执行当前case后的语句,而不会执行其他的case
                    如果比较结果为false,则继续向下比较

                    如果所有的比较结果都为false,则只执行default后的语句
                
                使用break可以来退出switch语句

                switch语句和if语句的功能实际上有重复的,使用switch可以实现if的功能,
                同样使用if也可以实现switch的功能
                
        */
        var c = 3;
        switch (c) {
            case 1:
                alert("1");
                break;
            case 2:
                alert("2");
                break;
            case 3:
                alert("3"); // 输出 3
                break;
            default:
                alert("0");
                break;
        }



        /*
            循环语句:
                通过循环语句可以反复的执行一段代码多次

                可以使用break结束循环

                创建一个循环,往往需要三个步骤
                    1.创建初始化一个变量
                    2.在循环中设置一个条件表达式
                    3.定义一个更新表达式,每次更新初始化变量


                while循环
                    语法:
                        while(条件表达式){
                            语句
                        }
                    
                    while语句在执行时,
                    先对条件表达式进行求值判断,
                    如果值为true,则执行循环体,
                    循环体执行完毕以后,继续对表达式进行判断
                    如果值为false,则终止循环
                
                do...while循环
                        语法:
                            do{
                                语句
                            }while(条件表达式)
                        
                        执行流程:
                            do. . .while语句在执行时,会先执行循环体,
                            循环体执行完毕以后,在对while后的条件表达式进行判断,
                            如果结果为true,则继续执行循环体,执行完毕继续判断以此类推
                            如果结果为false,则终止循环

                实际上这两个语句功能类似,
                不同的是while是先判断后执行,而do...while会先执行后判断
                do...while可以保证循环体至少执行一次,而while不能

                for循环
                    for语句,也是一个循环语句,也称为for循环
                    在for循环中,为我们提供了专门的位置用来放三个表达式:
                        1.初始化表达式
                        2.条件表达式
                        3.更新表达式
                    
                    for循环中的三个部分都可以省略,也可以写在外部

                    如果在for循环中不写任何的表达式,只写两个,
                    此时循环是一个死循环会一直执行下去 for(;;){}


                    语法一:
                        for(初始化表达式;条件表达式;更新表达式){
                            语句
                        }
                    
                    for循环的执行流程:
                        ①执行初始化表达式,初始化变量(初始化表达式只执行一次)
                        ②执行条件表达式,判断是否执行循环。
                            如果为true,则执行循环③
                            如果为false,终止循环
                        ③执行更新表达式,更新表达式执行完毕继续重复②

        */
        /*
             continue关键字
                 可以用来跳过当次循环
                 同样continue也是默认只会对离它最近的循环起作用
 
             break关键字
                 可以用来退出switch语句或循环语句
                 不能在if语句中使用break和continue
 
                 break关键字会立即终止离他最近的那个循环语句
                 
                 可以为循环语句创建一个label,来标识当前的循环label
                 循环语句使用break语句时,可以在break后跟着一个label
                 这样break将会结束指定的循环,而不是最近的
                     例如:break outer;
         */
        var d = false;
        while (d) {
            alert(d);//不执行
        }

        do {
            alert("1");//执行
        } while (d)

        for (var i = 1; i < 3; i++) {
            alert(i);//执行
        }

        for (var i = 1; i < 3; i++) {
            for (var j = 1; j < 3; j++) {
                if(i==j){
                    alert("BanQ");//执行2次
                    break;
                }
            }
        }


    </script>

</head>

<body>

</body>

</html>
对象
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script text="javascript">

        /*
            对象:
                除了五种基本数据类型,以后的值都是对象
                对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性

                分类:
                    1.内建对象
                        由ES标准中定义的对象,在任何的ES的实现中都可以使用
                        比如:Math string Number Boolean Function object
                    2.宿主对象
                        由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象
                        比如BOM DOM
                    3.自定义对象
                        由自己创建的对象

                
                创建对象:
                    1.使用new关键字调用的函数,是构造函数constructor
                        构造函数是专门用来创建对象的函数
                        var obj = new Object();
                    2.使用对象字面量来创建一个对象
                        var obj = {};

                        使用对象字面量,可以在创建对象时,直接指定对象中的属性
                        语法:
                            {属性名:属性值,属性名:属性值....}
                        对象字面量的属性名可以加引号也可以不加,建议不加
                        如果要使用一些特殊的名字,则必须加引号

                        属性名和属性值是一组一组的名值对结构,
                        名和值之间使用:连接,多个名值对之间使用,隔开
                        如果一个属性之后没有其他的属性了,就不要写,


                向对象添加属性:
                    在对象中保存的值称为属性向对象添加属性
                    语法:对象.属性名 = 属性值;

                读取对象中的属性:
                    语法:对象.属性名
                    如果读取对象中没有的展性,不会报错而是会返回undefined

                修改对象的属性值:
                    语法:对象.属性名 = 新值

                删除对象的属性
                    语法:delete 对象.属性名


            属性名
                对象的属性名不强制要求遵守标识符的规范,什么乱七八槽的名字都可以使用
                但是我们使用是还是尽量按照标识符的规范去做

                如果要使用特殊的属性名,不能采用.的方式来操作
                需要使用另一种方式:
                    语法:对象["属性名"]=属性值
                读取时也需要采用这种方式
                使用[]这种形式去操作属性,更加的灵活,
                在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性

            
            属性值
                JS对象的属性值,可以是任意的数据类型,也可以是一个对象


            in运算符
                通过该运算符可以检查一个对象中是否含有指定的属性
                如果有则返回true,没有则返回false
                语法:
                    "属性名" in 对象

        */

        //创建对象
        var obj = new Object();
        //向对象添加属性
        obj.name = "BanQ";
        //读取对象中的属性
        console.log(obj.name);//输出 {name: 'BanQ'}
        //修改对象的属性值
        obj.name = "半晴";
        console.log(obj.name);//输出 {name: '半晴'}
        //删除对象的属性
        delete obj.name;
        console.log(obj.name);//输出 undefined
        obj["123"] = "123";
        console.log(obj["123"]);//输出 123
        console.log(obj);

        var obj1 = new Object();
        obj1.name = "miko";
        //将对象属性值设置为一个对象
        obj.testObj = obj1;
        console.log(obj.testObj.name);//输出 miko
        //检查一个对象中是否含有指定的属性
        console.log("testObj" in obj);//输出 true


        /*
            基本数据类型
                String Number Boolean Null Undefined
            引用数据类型
                object

            JS中的变量都是保存到栈内存中的, 基本数据类型的值直接在核内存中存储,
            值与值之间是独立存在,修改一个变量不会影响其他的变量
            对象是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,
            而变量保存的是对象的内存地址〔对象的引用),
            如果两个变量保存的是同一个对象引用,当一个通过一个变量修改属性时,另一个也会受到影响

            当比较两个基本数据类型的值时,就是比较值。
            而比较两个引用数据类型时,它是比较的对象的内存地址,
            如果两个对象是一摸一样的,但是地址不同,它也会返回false

        */

        /*
            枚举对象中的属性
                使用for ... in语句
                语法:
                    for(var变量in对象){
                    }
            
                for. ..in语句对象中有几个属性,循环体就会执行几次
                每次执行时,会将对象中的一个属性的名字赋值给变量

        */
        var newObj = {
            name: "BanQ",
            age: 22
        }
        for (var v in newObj) {
            console.log(v); //输出 name age
            console.log(newObj[v]); //输出 BanQ 22
        }

        /*
            使用工厂方法创建对象
                通过该方法可以大批量创建对象

        */
        function createPerson(name,age){
            //创建对象
            var obj = new Object();
            obj.name = name;
            obj.age = age;
            //将对象返回
            return obj;
        }
        var newObj1 = createPerson("BanQ",22);
        console.log(newObj1);


    </script>

</head>

<body>

</body>

</html>
目录
相关文章
|
存储 JSON JavaScript
JavaScript组成
JavaScript组成
|
1月前
|
前端开发 JavaScript API
JavaScript
JavaScript
8 2
|
JavaScript 前端开发 Java
70.【JavaScript 6.0】(三)
70.【JavaScript 6.0】
58 0
|
JavaScript 前端开发 编译器
JavaScript初步理解
JavaScript初步理解
|
JavaScript 前端开发 Java
JavaScript的知识总结(5)
JavaScript的知识总结(4)
107 0
|
JavaScript 前端开发
玩转Javascript魔法篇
这些都是平时我们经常在业务中会用的功能,实现起来的方法不止一种,但是我们要经常思考,举一反三,追求一种简洁高效的写法,不是吗?
117 0
玩转Javascript魔法篇
|
JavaScript 前端开发 算法
JavaScript的各种等号`==` `===`最全详解(上)
JavaScript的各种等号`==` `===`最全详解(上)
246 0
JavaScript的各种等号`==` `===`最全详解(上)
|
JavaScript 前端开发 API
简单了解 JavaScript的组成
DOM ,BOM, ECMAScript JS组成
|
JavaScript 前端开发
Javascript 中的 this
当我们学习 Javascript 中的 this 时,非常容易陷入一种困境,一种似懂非懂的困境。在某些情况下,我们看了一些文章和解释,将其应用到一些简单的情况,发现,嗯,确实这么运作了。而在另一些更为复杂的情况下,我们发现又懵逼了,什么情况?这篇文章的目的,就是要完全搞懂并掌握 Javascript 中的 this。为什么我们很难完全掌握 this?在我看来,原因是 this 的解释太过抽象,在理
641 0
|
Web App开发 JavaScript 前端开发
JavaScript的介绍
JavaScript的介绍   javascript是什么?     javascript 是因特网上最流行的脚本语言,它存在于全世界所有 Web 浏览器中,能够增强用户与 Web 站点和 Web 应用程序之间的交互。
1044 0

相关实验场景

更多