[关闭]
@yacent 2016-05-11T00:47:42.000000Z 字数 1776 阅读 805

JavaScript 高级程序设计 再复习

JavaScript


第三章:

基本包装类型对其余基本类型的处理
Number:
对于 null,将其转为0,undefined则转为 NaN,string则根据parseInt或者 parseFloat来进行,boolean,true为0,false 为1
String
对于null,转为null,undefined转为undefined,其余类型都调用其toString()函数
Boolean
对于string,空字符串为false,非空为true,number,除了0 和NaN之外,都为true

操作符

求布尔值:
1. Boolean
2. !! 即可获得变量的布尔值

逻辑与/或 不一定返回布尔值,有可能返回对象

乘性操作符:
1. "+": 若有一个操作符为字符串,则拼接
2. "-": 若有操作符为非数值,则调用Number,再计算

相等操作符:
1. == : 做类型转换 且比较
2. === : 只比较,不转换

第四章

参数类型

1. 基本类型(undefined, null, string, number, boolean)
    按值传递,拷贝副本,但不影响本身
2. 引用类型(array, obejct......)
    引用传递,指向同一内存空间,只是别名,影响本身

检测二者的类型:
1. 基本数据类型: typeof
2. 引用数据类型: instanceof

垃圾回收机制

1. 标记清除(常用)
2. 引用计数
    会产生问题:如循环引用时,无法释放内存

第五章

引用类型

Obejct:
    创建object的方式
        1. new Object()
        2. 字面量的方式
        3. Object.create()

Array:
    1. 检测是否为array
        a. Array.isArray()
        b. Object.prototype.toString.call() == '[object Array]'
    2. alert 传入参数为一字符串,为非字符串时,调用其toString()函数
    3. Array → String
        a. toString()
        b. arr.join('')
    4. 数组常见操作方法
        a. push、pop、shift、unshift
        b. reverse、sort
        c. concat、slice、splice
        d. indexOf、lastIndexOf
        e. every、some、forEach、map、filter
        f. reduce、reduceRight

Date: 了解即可

RegExp:
    1. 定义
        a. /[a-z]/gim
        b. new RegExp("", "")
    2. 实例方法
        a. exec()
        b. test()
    3. RegExp实例属性
        RegExp.lastMatch、RegExp.input、RegExp.leftContext、RegExp.rightContext、RegExp.LastParen、RegExp.$1……

Function:
    1. 声明
        a. 函数声明
        b. 函数表达式
        c. 二者是不同的,解析器会优先处理函数声明,会将其提升至代码顶部,我们称之为 函数声明提升,而对于函数表达式,则只会运行到时,才真正解析执行
    2. 函数内部属性
        a. arguments,传入实际参数的数组,伪数组
        b. caller
        c. this
    3. 函数属性
        a. length,返回的是定义函数时,参数列表中所需的参数的个数
    4. 函数方法
        a. call()
        b. apply()
        c. bind()

        PS: call和apply都是用来改变作用域的用处,二者不同之处在于传入参数的方式不同,call需要一个个地传入,而apply则是传入数组

基本包装类型:Boolean、String、Number
问:为什么平时在用基本类型(string,number,boolean)时,其不为对象,却可以使用类似于str.subString()等的方法呢?
答:因为在读取模式下访问基本类型的变量时,系统后台自动帮我们做了如下的事情,
    a. 创建String类型的一个实例 (即var s1 =  new String)
    b. 调用相对应的方法 (s1.subString())
    c. 销毁该实例 (s1 = null)

对象类型:
1. 单体内置对象: Global、Object、Array、Date……
2. 宿主对象:window、document……
3. 用户自定义对象

Math:
    1. 常用操作
        a. min、max
        b. ceil、floor、round
        c. random、abs、pow、sqrt
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注