美文网首页
Basic Javascript

Basic Javascript

作者: 黑夜的眸 | 来源:发表于2018-05-27 21:27 被阅读0次

    Javascript访问属性值

    • 使用 小圆点(.) 来访问
    • 使用中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])
      这是一个使用中括号操作符([])读取对象属性的例子:
    var myObj = {
      "Space Name": "Kirk",
      "More Space": "Spock"
    };
    myObj["Space Name"]; // Kirk
    myObj['More Space']; // Spock
    

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

    var myObj = {
      top: "hat",
      bottom: "pants"
    };
    myObj.hasOwnProperty("top");    // true
    myObj.hasOwnProperty("middle"); // false
    

    JavaScript Object Notation

    简称 JSON,它使用JavaScript对象的格式来存储数据。JSON是灵活的,因为它允许 数据结构 是 字符串,数字,布尔值,字符串,和 对象 的任意组合。

    这里是一个JSON对象数组的示例:

    var ourMusic = [
      {
        "artist": "Daft Punk",
        "title": "Homework",
        "release_year": 1997,
        "formats": [ 
          "CD", 
          "Cassette", 
          "LP" ],
        "gold": true
      }
    ];
    

    这是一个对象数组,并且对象有各种关于专辑的 详细信息。它也有一个嵌套的 formats 的数组。附加专辑记录可以被添加到数组的最上层。

    提示
    数组中有多个 JSON 对象的时候,对象与对象之间要用逗号隔开。

    Math

    • Math.random() 生成[0,1)之间的随机数,绝不会生成1;
    • Math.floor() 向下取整
    • 生成[0,9]之间的整数可以使用
    Math.floor(10*Math.random() ) 
    

    生成的[min ,max]之间的整数可以使用。

    Math.floor(Math.random() * (max - min + 1)) + min
    

    Regular expressions

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

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

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

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

    • the 是我们想要匹配的模式

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

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

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

    特殊选择器中的一种就是数字选择器\d,意思是被用来获取一个字符串的数字。在选择器后面添加一个加号标记(+),例如:/\d+/g,它允许这个正则表达式匹配一个或更多数字。

    // 初始化变量
    var testString = "There are 3 cats but 4 dogs.";
    
    var expression = /\d+/g;  
    
    // 用 digitCount 存储 testString 中匹配到 expression 的次数
    var digitCount = testString.match(expression).length;
    

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

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

    \S 匹配任何非空白字符,类似于:/\S/g,注意没有加号+


    可以使用构造函数来创建对象。

    构造函数 通常使用大写字母开头,以便把自己和其他普通函数区别开。

    下面便是一个 构造函数 了:

    var Car = function() {
      this.wheels = 4;
      this.engines = 1;
      this.seats = 1;
    };
    

    this 的属性值为公有属性,要想创建私有属性或私有方法,使用我们熟悉的 var 关键字去创建变量,来替代我们使用 this 创建 属性:

    var Car = function() {
      // this is a private variable
      var speed = 10;
    
      // these are public methods
      this.accelerate = function(change) {
        speed += change;
      };
    
      this.decelerate = function() {
        speed -= 5;
      };
    
      this.getSpeed = function() {
        return speed;
      };
    };
    

    map方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。

    var oldArray = [1,2,3,4,5];
    var timesFour = oldArray.map(function(val){
      return val * 4;
    });
    

    reduce方法 用来迭代一个数组,并且把它累积到一个值中。

    使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 累加器 (比如例子中的 previousVal) 和当前值 (currentVal)。

    reduce 方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果没有在这定义初始值,那么初始值将变成数组中的第一项,而 currentVal 将从数组的第二项开始。

    下面的例子使用了 reduce 来让数组中的所有值相减:

    var array= [1,2,3,4,5,6,7,8,9,10];
    var singleVal = array.reduce(function(previousVal, currentVal) {
      return previousVal - currentVal;
    }, 0);
    

    filter 方法用来迭代一个数组,并且按给出的条件过滤出符合的元素。

    filter 方法传入一个回调函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它 val )。

    回调函数返回 true 的项会保留在数组中,返回 false 的项会被过滤出数组。

    下面的代码示例展示了使用 filter 来移除数组中值等于5的项:

    注意: 我们忽略了第二参数和第三参数,因为例子中我们只需要第一参数就够了。

    array = array.filter(function(val) {
      return val !== 5;
    });
    

    sort 方法,你可以很容易的按字母顺序或数字顺序对数组中的元素进行排序。与我们之前用的数组方法仅仅返回一个新数组不同, sort 方法将改变原数组,返回被排序后的数组。

    sort 可以把比较函数作为参数传入。注:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

    传参原理:当a,b两个数进行比较时,如果回调函数返回的是true,则要交换;

    试想一下:当5与3进行比较时,按下面的返回true,则要交换,即升序排序;

    array.sort(function(a, b) {
      return a-b;
    });
    

    同理,以下则为降序排列;

    array.sort(function(a, b) {
      return b-a;
    });
    

    reverse 方法用来翻转数组。

    var myArray = [1, 2, 3];
    myArray.reverse();
    

    concat 方法可以用来把两个数组的内容合并到一个数组中。

    concat 方法的参数应该是一个数组。参数中的数组会拼接在原数组的后面,并作为一个新数组返回。

    下面是一个拼接数组的例子,用concat 把 otherArray 拼接在 oldArray 的后面:

    newArray = oldArray.concat(otherArray);
    

    split 方法按指定分隔符将字符串分割为数组。

    你要给 split 方法传递一个参数,这个参数将会作为一个分隔符。

    下面的例子展示了 split 方法的使用,按照 s 字母进行分割:

    var array = string.split('s');
    

    join 方法来把数组转换成字符串,里面的每一个元素可以用你指定的连接符来连接起来,这个连接符就是你要传入的参数。

    下面展示了使用 join 来将数组中的每一项放入字符串,并用 and 进行连接:

    var veggies = ["Celery", "Radish", "Carrot", "Potato"];
    var salad = veggies.join(" and ");
    console.log(salad); // "Celery and Radish and Carrot and Potato" 
    

    相关文章

      网友评论

          本文标题:Basic Javascript

          本文链接:https://www.haomeiwen.com/subject/qtqijftx.html