javascript深入浅出 数组、函数和作用域

 

数组

    概述:

        有序的集合,拥有索引

        js中的数组是弱类型,可含有不同类型元素

    创建数组:

        最大数数量 2^23-1

        字面量

        new Array()

    增删改查:

        增加

            最后添加    arr.push(val)

            最前添加    arr.unshift(val)

            通过索引添加

        删除

            最后删除    arr.pop()

            最前删除    arr.shift()

            通过索引删除

            删除后长度不变

        修改

            通过索引修改

        查看

            通过索引查看

            遍历

                for

                    按顺序,数字索引

                for...in

                    不按顺序,可遍历原型链

函数

    定义:

        函数是一块代码,被定义一次,但可调用多次

    不同创建方式:

        函数声明

            声明前置,前面代码可执行到

        函数表达式

            变量赋值

1
2
3
var fun = function () {
 
};

            匿名函数立即执行

1
2
3
(function () {
 
})();

            返回函数

1
2
3
return function () {
 
};

            命名函数表达式

1
2
3
var fun = function foo() {
 
};

        函数构造器

            new Function();

    不同调用方式:

        直接调用    foo();

        对象方法    o.method();

        构造器    new Foo();

        call/apply/bind

    this:

        全局this

            =window

        一般函数的this

            =window

            严格模式为 undefined

        对象方法的函数的this

            谁调用this指向谁

        原型链上的this

        get/set方法与this

            谁调用this指向谁

        构造函数中的this

            指向构造函数

        call/apply方法与this

            this指向从参数传入的对象

        bind方法与this

            把对象作为this传入

            bing科里化

    arguments:

        foo.length    形参个数

        arguments.length    实参个数

        arguments.callee    函数名


作用域

    闭包:

        是什么

            一个函数的引用,与一个引用环境绑定在一起

        做什么

            循环中的事件可用闭包

            常用类库使用闭包封装

        优劣

            优点

                灵活和方便

                封装

            劣势

    ​    ​    ​    ​性能消耗

    ​    ​    ​    ​内存泄露

    作用域:

    ​    ​没有块级作用域

    ​    ​三种作用域

    ​    ​    ​​全局

    ​    ​    ​函数

    ​    ​    ​eval

    ​    ​作用域链

    ​    ​    ​内层函数可范围所有外层函数局部变量


 

posted @ 2017-03-02 20:05  前望  阅读(219)  评论(0编辑  收藏  举报