JavaScript高级程序设计3学习笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript高级程序设计3学习笔记相关的知识,希望对你有一定的参考价值。

引用类型有Object、Array、Date、RegExp、Function、基本包装类型

创建一个对象实例用new + 构造函数,比如:var obj = new Object();

Object类型

还可以用对象字面量表示法来表示对象:

var person = {
    name : "harry",
    age : 29
};

访问对象的属性(或使用对象的方法来操作数)使用点表示法或者方括号(适用于属性表示法),例如

alert(person["name"]);           //"harry"
alert(person.name);               //"harry"

Array类型

两种创建数组的方法,构造函数和数组字面量表示法:

  • 构造函数:var colors = new Array(3); 或者 var colors = new Array("red", "blue");,其中操作符new可以省略,传入的参数是数值表示数组的项数,传入的参数是其他类型则表示数组项的值。

  • 数组字面量:var colors = ["red", "blue", "green"];

所有数组对象都有属性length,方法toLocaleString(), toString()和valueOf(),其中toString()方法返回数组中每一项以字符串形式拼接的以逗号分隔的字符串

一些重要的数组操作方法

  1. 栈方法
    LIFO结构,使用方法push()和pop(),push()方法接收任意类型的参数,从数组的末尾插入项,返回修改后数组的长度;POP()方法返回从数组末尾移除的最后一项。

  2. 队列方法
    FIFO结构,使用方法shift()和push(),shift()方法移除数组第一项并返回这一项;使用unshift()和pop()可以从反方向来模拟队列,unshift()方法从数组的前面插入项,并返回修改后的数组长度。

  3. 重排序方法
    方法reverse()反转数组项的顺序,sort()方法会调用每个数组项的toString()方法,比较得到的字符串,按升序排列,可以接收一个比较函数作为参数来比较数组项:

    function compare(value1, value2) {
    if (value1 < value2) {
        return -1;
    } else if (value1 > value2) {
        return 1;
    
    } else {
        return 0;
    }
    }

    另外一个按降序排列的比较函数:

    function compare(value1, value2) {
    if (value1 < value2) {
        return 1;
    } else if (value1 > value2) {
        return -1;
    
    } else {
        return 0;
    }
    }
  4. 拼接、切片、删除、插入、替换方法(用到concat(), slice(), splice()方法)
    concat()和slice()方法都是创建数组的一个副本,不影响原数组。concat()方法参数是要拼接的数组项,slice()方法第一个参数是要返回项的起始位置,第二个参数是要返回项的结束位置(不包括),如果只有一个参数,则返回从该参数指定位置到数组末尾所有的项。
    splice()方法的三个参数:第一个参数是起始位置,第二个参数是要删除的项数,第三个参数是要插入的项,可以对传入的参数进行改变,这个方法会影响原数组

  5. 位置方法(用到indexOf()和lastIndexOf()方法)
    都可以有两个参数,第一个参数表示要查找的项,第二个参数表示查找的起始位置(可选),方法indexOf()表示从前向后找,方法lastIndexOf()表示从后向前找。

  6. 迭代方法:every(), filter(), forEach(), map(), some()
    传入方法的函数有三个参数:数组项的值,该项在数组中的位置和数组对象本身。

  7. 归并方法:reduce()和reduceRight()
    reduce()从数组的第一项遍历到最后一项,reduceRight()则从后向前遍历,对数组所有的项求和的代码例子:

    var values = [1, 2, 3, 4, 5];
    var sum = values.reduce(function(pre, cur, index, array) {
    return pre + cur;
    });
    alert(sum);   //15

Date类型

Function类型

两种构造函数方法:函数声明和函数表达式,函数声明可以在声明之前调用函数,而函数表达式不行:

alert(sum(10, 20));                //30
function sum(num1, num2) {
    return num1 + num2;
}
alert(sum(10, 20));                //不能正常运行
var sum = function(num1, num2) {
    return num1 + num2;
}








以上是关于JavaScript高级程序设计3学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

《javascript高级程序设计》学习笔记 | 9.3.代理模式

JavaScript高级程序设计(第3版)| 学习笔记: 在HTML中使用JavaScript

《JavaScript高级程序设计(第四版)》学习笔记第3章

《JavaScript高级程序设计(第四版)》学习笔记第3章

JavaScript高级程序设计3学习笔记

《javascript高级程序设计》学习笔记 | 11.1.异步编程