yanghongchen666 发表于 2021-1-29 11:51:41

JS学习第五章(最近有点事更新的慢了的(=・ω・=))

本帖最后由 yanghongchen666 于 2021-1-31 01:15 编辑

Js中的break和continue:

      break:
            break可以立即终止离它最近的switch和循环语句(if语句不能)
      continue:
            continue可以用来跳过当次循环,并继续进行,
                跟break一样,continue也只会对离它最近的循环起作用。
      
      for(var i=0; i<5; i++){
            console.log("@外层循环" + i);
            for(var j=0; j<5; j++){
                break;
                console.log("内层循环: " + j);
            }
      }

      既然break可以终止离他最近的循环,那么上面的例子如果我想跳出外层循环要怎么办呢?
      其实答案也很简单啦~在JS中我们可以使用label来让break知道跳出那个循环,语法如下:

            label:循环语句
            break label;
      现在我们来改写上面的例子~

      outer:
      for(var i=0; i<5; i++){
            console.log("@外层循环" + i);
            for(var j=0; j<5; j++){
                break outer;//终止外层循环
                console.log("内层循环: " + j);
            }
      }

      同样continue后面也可以写label哟~
       outer:
      for(var i=0; i<5; i++){
            for(var j=0; j<5; j++){
                if(j == 1){
                  continue outer;
                }
                console.log("-->" + j);
            }
            console.log("@--->" + i);
      }
----------------------------------------------
JS中对象的简介:
    (嘿嘿嘿~没有npy的各位我们以后可以new一个对象啦!!!激不激动!赶紧来一起学习new对象!!!)

    对象的分类:
      1.内建对象
            -由Es标准定义的对象,在任何ES的显示中都可以使用
            -比如: Math String Number Boolean Function....
      2.宿主对象:
            -由JS的运行环境提供的对象,目前来说主要指浏览器
            -比如BOM DOM
      3.自定义对象
            -由开发人员自己创建的对象

    对象属于复合数据类型,在对象中可以保存多个不同数据类型的属性(下面有example)

    复合类型和基本类型的不同在于,基本类型创建的变量是独立的,也就是说值跟值之间没有任何的联系,
    但是复合类型值跟值间是由联系的
---------------------------------------------
JS中对象基本的操作:

      创建对象:
      //new关键字可以构造函数constructor
            var obj = new Object();
      
      在对象中添加属性
      语法:
            对象.属性名 = 属性值
            obj.name = "孙悟空";
            obj.age = 18;
            obj.gender = "男";

      读取对象中的值
      语法:
            对象.属性值
            console.log(obj.name);//这里会输出对应name属性里面的值,也就是孙悟空
      

      //修改对象的值
      obj.name = "猪八戒";
      在对象中属性的值可以直接覆盖

      //删除对象的值
      delect obj.name
      //如果读取对象中的属性不存在,不会报错而会返回undefined
      console.log(obj.name)
---------------------------------------------
JS对象中的属性名和属性值:

    语法:
      对象["属性名"] = 属性值
   
    我们可以使用[]方式来代替.的方式来操作
    使用[]可以在里面使用特殊的属性名
      比如: "1290384 9wtgyherw [29q3w5t3 qgy89ed"
            "锄禾日当午"
            (即使可以使用,但也不建议使用)
   
    []不仅可以使用特殊的属性名,也可以在[]中传递一个变量
      这样变量的值是多少就会读取那个属性
   
    例子:
      //创建对象
      var obj = new Object();
      var n = "123";

      obj["123"] = "number";

      /*
            这里我们在[]里传入变量n
            输出的值是"number"因为变量n的值为"123",而对象属性名中有"123",
                所以这里会直接打印"123"属性对应的值
      */
      console.log(obj);

    obj中的属性值可以是任意的属性值,甚至可以使一个obj

    例子:
      //创建一个对象
      var obj2 = new Object();

      obj2.name = "猪八戒";

      //将obj2设置为obj的属性
      obj.test = obj2

      //在obj2里找name属性
      console.log(obj.test.name);//这里会输出猪八戒


    在对象中有时候我们不知道是否有这个属性在对象中存储,
      这时我们可以使用in运算符帮助我们,具体如下

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

      例子:
            //检查obj中是否含有test2属性
            console.log("test2" in obj);
            console.log("test" in obj);
            console.log("name" in obj);
----------------------------------------------------------
JS中的基本数据类型和引用数据类型:

      基本数据类型
            String Number Boolean Null Undefined
            
      引用数据类型
            Object

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

    两句话总结一下
      基本类型:在存储变量的值的时候,保存的就是当前的值,并且修改一个变量不会影响其他变量。
      引用类型:对象在保存值的时候,保存的是内存地址,所以这也就是为什么在obj中修改属性可以直接覆盖,
                  因为在内存地址空间内会用新值覆盖旧值;这也解释了为什么obj的属性值也可也是对象
                        因为保存的对象的值也是相同的内存地址。
----------------------------------------------------------------
JS中的字面量:
   
    使用字面量来创建对象会更加的方便和迅速
   
    语法:
      {属性名.属性值,属性名.属性值......};
   
    注意事项:
         对象字面量的属性名可以加引号也可以不加,建议不加,
            如果要使用特殊的名字,则必须加引号

      属性名和属性值是一组一组的名值对结构,
            名和值之间使用:连接,多个名值对之间使用,隔开
            如果一个属性之后没有其他的属性了,就不要写。(跟python的字典基本上一模一样~)

    例子:
      var obj2 = {
            name:"孙悟空",
            age:18,
            gender:"男",
            test:{
                name:"沙和尚",
                age:19,
                gender:"男"
            }
      };

      这里字面量会比使用new Object()情况更多,请大家多多练习并熟练掌握~
--------------------------------------------------------


试一试:

1.使用for嵌套循环打印9*9乘法表(效果如下):
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81

2.使用for嵌套循环打印1-100以内所有质数

3.使用break来改进试一试2中的质数练习,让他效率变的更高吧!

4.创建一个对象属性包含country,city,shcool,job

5.使用对象字面量来创建试一试


前面两周有一些事情所以这一期更新的慢了一点~不过不用担心之后应该就是正常速度啦~希望大家多多支持鸭!一起学习~一起用编程改变世界!加油~

**** Hidden Message *****

昨非 发表于 2021-1-29 12:21:45

{:10_275:}

Judie 发表于 2021-1-29 13:16:14

支持楼主

心驰神往 发表于 2021-1-29 13:49:49

{:10_254:}

不二如是 发表于 2021-1-30 10:00:22

代码用编辑器“<>”括起来更美观哦

hornwong 发表于 2021-1-30 11:00:07

{:5_95:}

yanghongchen666 发表于 2021-1-31 01:16:24

不二如是 发表于 2021-1-30 10:00
代码用编辑器“”括起来更美观哦

谢谢不二大大的提醒~~一直找不到这个功能现在找到啦!以后写代码案例就加上惹~
页: [1]
查看完整版本: JS学习第五章(最近有点事更新的慢了的(=&#12539;ω&#12539;=))