• 关于JavaScript语法的小笔记


    1、pop() 函数用来移出数组中最后一个元素;shift() 函数移出数组中的第一项,unshift(移入)一个元素到数组的头部。

       例如:

    var myArray = [["John", 23], ["dog", 3]];
    var a=myArray.pop();  //var myArray = [ ["John", 23] ]; 移出最后一个
    var a=myArray.shift();  //var myArray = [ ["dog", 3] ]; 移出第一个
    var c=myArray.unshift(["ccc",1]);  //var myArray =[["ccc",1],["John", 23], ["dog", 3]]; 数组["ccc",1]插入了头部,成为了第一个

    2、所有的比较操作符返回的都是一个boolean值,要么是 true 要么是false 。使用 if/else语句来做比较然后返回truefalse已经成为大家的共识:

    例如:

    function isEqual(a,b) {
      if (a === b) {
        return true;
      } else {
        return false;
      }
    }

    可以简化成:

    function isEqual(a,b) {
      return a === b;
    }

    3、有两种方式访问对象属性,一个是点操作符(.),一个是中括号操作符([])。当你知道属性的名称的时候,使用点操作符。

        1)点操作符(.)

    例如:

    var myObj = {
      prop1: "val1",
      prop2: "val2"
    };
    var prop1val = myObj.prop1; // val1
    var prop2val = myObj.prop2; // val2
    
    //
    
    var testObj = {
      "hat": "ballcap",
      "shirt": "jersey",
      "shoes": "cleats"
    };
    var hatValue = testObj.hat;      // ballcap 点操作符
    var shirtValue = testObj.shirt;    // jersey 点操作符

      2)中括号操作符([]):如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。

    var myObj = {
      "Space Name": "Kirk",
      "More Space": "Spock"
    };
    myObj["Space Name"]; // Kirk
    myObj['More Space']; // Spock

    //提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。

     注意:

    1)当你创建了一个对象后,你可以用点操作符或中括号操作符来更新对象的属性。

    // 举例
    var ourDog = {
      "name": "Camper",
      "legs": 4,
      "tails": 1,
      "friends": ["everything!"]
    };

    让我们更改它的名称为 "Happy Camper",这有两种方式来更新对象的name属性:

    var ourDog = {
      "name": "Camper",
      "legs": 4,
      "tails": 1,
      "friends": ["everything!"]
    };
    
    ourDog.name = "Happy Camper"; //点操作符
    ourDog["name"]= "Happy Camper"; //中括号操作符

    2)也可以像更改属性一样给对象添加属性。

    // 举例
    var ourDog = {
      "name": "Camper",
      "legs": 4,
      "tails": 1,
      "friends": ["everything!"]
    };

       给myDog添加一个"bark" 属性,设置它的值为狗的声音,例如:"bow-wow"。

    var ourDog = {
      "name": "Camper",
      "legs": 4,
      "tails": 1,
      "friends": ["everything!"]
    };
    
    ourDog.bark = "bow-wow"; //点操作符
    ourDog["bark"]= "bow-wow"; //中括号操作符

    3)删除对象的属性 (删除ourDog对象的"tails"属性。)

    // 举例
    var ourDog = {
      "name": "Camper",
      "legs": 4,
      "tails": 1,
      "friends": ["everything!"],
      "bark": "bow-wow"
    };

    delete ourDog.bark; //点操作符

    4)中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。

    使用变量来访问属性的例子:

    var someProp = "propName";
    var myObj = {
      propName: "Some Value"
    }
    myObj[someProp]; // "Some Value"

    以及:

    var myDog = "Hunter";
    var dogs = {
      Fido: "Mutt",
      Hunter: "Doberman",
      Snoopie: "Beagle"
    }
    var breed = dogs[myDog]; // "Hunter"
    console.log(breed)// "Doberman"

    提示:当我们通过变量名访问属性的时候,不需要给变量名包裹引号。因为实际上我们使用的是变量的值,而不是变量的名称。

    4、检查一个对象属性是否存在是非常有用的,我们可以用.hasOwnProperty(propname)方法来检查对象是否有该属性。如果有返回true,反之返回 false

    //举例1
    var myObj = {
      top: "hat",
      bottom: "pants"
    };
    myObj.hasOwnProperty("top");    // true
    myObj.hasOwnProperty("middle"); // false
    //举例2
    
    //用函数checkObj检查myObj是否有checkProp属性,如果属性存在,返回属性对应的值,如果不存在,返回 "Not Found"。
    
    //代码如下
    
    var myObj = {
      gift: "pony",
      pet: "kitten",
      bed: "sleigh"
    };
    function checkObj(checkProp) {
      var tr = myObj.hasOwnProperty(checkProp); //检查对象是否存在,将结果赋值给tr
      if(tr===true){                            //判断tr是否true ?(存在)
        return myObj[checkProp]; //             //存在则返回属性对应的值
      }else{
        return "Not Found";                     //不存在,则返回“Not Found”
    } }
    checkObj(
    "gift");

    5、for循环:

         for循环中的三个表达式用分号隔开:

      for ([初始化]; [条件判断]; [计数器])

      初始化语句只会在执行循环开始之前执行一次。它通常用于定义和设置你的循环变量。

      条件判断语句会在每一轮循环的开始执行,只要条件判断为 true 就会继续执行循环。

                      当条件为false的时候,循环将停止执行。这意味着,如果条件在一开始就为 false,这个循环将不会执行。

      计数器是在每一轮循环结束时执行,通常用于递增或递减

    //举例1:
    var ourArray = [];
    for (var i = 0; i < 5; i++) { 
      ourArray.push(i);
    }
    //先初始化i = 0,条件 i < 5 为真,进入第一次循环,执行大括号里的代码,第一次循环结束。递增i的值,条件判断,就这样依次执行下去,直到条件判断为假,整个循环结束。
    
    //举例2:通过更改我们的 计数器,我们可以按照偶数顺序来迭代。
    var ourArray = []; 
    for (var i = 0; i < 10; i += 2) {      
      ourArray.push(i);
    }
    //初始化 i = 0,当 i < 10 的时候继续循环。i += 2 让 i 每次循环之后增加2。循环结束后,ourArray 的值为 [0,2,4,6,8]。奇数同上
    
    //举例3:for循环也可以逆向迭代
    var ourArray = [];
    for (var i=10; i > 0; i-=2) {
      ourArray.push(i);
    }
    //为了能够从后往前两两倒数,需要改变我们的 初始化,条件判断 和 计数器。让 i = 10,并且当 i > 0 的时候才继续循环。使用 i-=2 来让 i 每次循环递减 2。循环结束后,ourArray 的值为 [10,8,6,4,2]。
    
    //举例4:for 循环迭代输出一个数组的每个元素
    var arr = [10,9,8,7,6];
    for (var i=0; i < arr.length; i++) {
       console.log(arr[i]);
    }
    //数组的索引从零开始的,这意味着数组的最后一个元素的下标是:数组的长度 - 1。我们这个循环的 条件 是 i < arr.length,当 i 的值为 长度-1 的时候循环就停止了
    
    //举例5:二维数组,可以使用相同的逻辑,先遍历外面的数组,再遍历里面的子数组。
    //1):
    var arr = [
      [1,2], [3,4], [5,6]
    ];
    for (var i=0; i < arr.length; i++) {
      for (var j=0; j < arr[i].length; j++) {
        console.log(arr[i][j]);
      }
    }
    //一次输出 arr 中的每个子元素。提示,对于内部循环,我们可以通过 arr[i] 的 .length 来获得子数组的长度,因为 arr[i] 的本身就是一个数组。
     //2):
      function multiplyAll(arr) {
      var product = 1;
      for (var i=0;i<arr.length;i++){
        for (var j=0;j<arr[i].length;j++){
          product *= arr[i][j];
        }
      }
      return product;
    }
    multiplyAll([[1,2],[3,4],[5,6,7]]);
    //函数 multiplyAll,获得 arr 内部数组的每个数字相乘的结果 product。

    6、while循环:

        另一种类型的 JavaScript 循环被称为while循环,因为它规定,当(while)条件为真,循环才会执行,反之不执行。

    //举例
    var
    ourArray = []; var i = 0; while(i < 5) { ourArray.push(i); i++; }

    7、计算机的行为只有两种:确定性和随机性。Math.random()用来生成一个在0(包括0)到1(不包括1)之间的随机小数,因此Math.random()可能返回0但绝不会返回1。

    //举例:
    function myFunction(arr) {
      var arr = Math.random();
      return arr;
    }
    //myFunction 来生成一个随机数。

      1)生成随机小数很棒,但随机数更有用的地方在于生成随机整数

       例子:

    1. Math.random() 生成一个随机小数。
    2. 把这个随机小数乘以 20
    3. Math.floor() 向下取整 获得它最近的整数。
    4. 注意:记住 Math.random() 永远不会返回 1。同时因为我们是在用 Math.floor() 向下取整,所以最终我们获得的结果不可能有 20。这确保了我们获得了一个在0到19之间的整数
    //把操作连缀起来,代码类似于下面:
    Math.floor(Math.random() * 20);
    
    例子:
    //生成一个 0 到 9之间的随机整数。 function myFunction(arr) { var arr= Math.floor(Math.random() * 10); return arr; }

    2)要生成的随机数是在两个指定的数之间。

    //需要定义一个最小值和一个最大值。
    Math.floor(Math.random() * (max - min + 1)) + min
    
    //例子:
    function randomRange(myMin, myMax) {
      var myRandom = Math.floor(Math.random() * (myMax - myMin + 1)) + myMin;
      return myRandom; 
    }
    var myRandom = randomRange(5, 15);
    //randomRange的函数,参数为myMin和myMax,返回一个在myMin(包括myMin)和myMax(包括myMax)之间的随机数。

    8、Regular expressions 正则表达式  被用来根据某种匹配模式来寻找strings中的某些单词。

        举例:如果我们想要找到字符串The dog chased the cat中单词 the,我们可以使用下面的正则表达式: /the/gi

     我们可以把这个正则表达式分成几段:

    / 是这个正则表达式的头部

    the 是我们想要匹配的模式

    / 是这个正则表达式的尾部

    g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。

    i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。

    1)可以在正则表达式中使用特殊选择器来选取特殊类型的值。

    //特殊选择器中的一种就是数字选择器d,意思是被用来获取一个字符串的数字。
    //在JavaScript中, 数字选择器类似于: /d/g。
    
    //在选择器后面添加一个加号标记(+),例如:/d+/g,它允许这个正则表达式匹配一个或更多数字。
    
    //尾部的g是'global'的简写,意思是允许这个正则表达式 找到所有的匹配而不是仅仅找到第一个匹配。
    
    //例子:
    /d+/g

    2)可以使用正则表达式选择器 s 来选择一个字符串中的空白。

    //空白字符有 " " (空格符)、
     (回车符)、
     (换行符)、	 (制表符) 和 f (换页符)。
    
    //空白正则表达式类似于:
    
    /s+/g

    3)注意:正则表达式选择器的大写版本 来转化任何匹配.

    //例子:
    s   //匹配任何空白字符,
    S   //匹配任何非空白字符。
  • 相关阅读:
    Python Django :HTTP生命周期
    Docker简介及Centos 7 安装[初步配置]
    python:Django 简介。
    python :Django url /views /Template 文件介绍
    python:异常处理及程序调试
    python之正则表达式【re】
    Day 21 python :面向对象 类的相关内置函数 /单例模式 /描述符
    Day 22: 软件开发目录设计规范
    Day 20: 面向对象【多态,封装,反射】字符串模块导入/内置attr /包装 /授权
    SpringCloud教程 | 第九篇: 服务链路追踪(Spring Cloud Sleuth)
  • 原文地址:https://www.cnblogs.com/caojiayan/p/6171157.html
Copyright © 2020-2023  润新知