JavaScript知识点整理 (二)

 

1)函数概述

1.函数是一块 JS 代码,被定义一次,但可以执行和调用多次。 JS 中的函数也是对象,
所以 JS 函数可以像其它对象那样操作和传递,所以也常叫 JS 中的函数为函数对象。
2.函数也是对象,也叫函数为函数对象。
函数的返回值依赖return,如果没有return则返回 undefined,如果作为构造器使用 new调用的话,return 后面的是基本类型或者没有,则将 this 返回。

3.函数调用的几种方式
直接调用  foo()
对象方法 o.method()
构造器 new Foo()
call/apply/bind  func.call(o)

 2)函数声明与表达式

函数声明 函数表达式 函数构造器的区别:

 

3)this

全局对象中的this指的是window对象,但是在严格模式下时undefined.
在对象中对象方法中的this值得是当前的对象,或者把函数作为对象的方法是用this都是指当前对象.
对象原型链上的方法中的this也指的是当前对象。
对象中的get/set方法中的this也指的是当前对象。
构造器中的this指的是构造器函数prototype中的原型,当new一个对象时就会将构造器的prototype中的this赋值个当前对象。

call():扁平的传参,
apply():以数组的方式传参;
bind对象绑定之后即使有新的对象,仍然会按原来的绑定走。

判断this的指向(1-4优先级逐级递减,1优先级最高,4优先级最低):
1、函数被new调用,this指向由new新构造出来的这个对象;
2、函数通过call()、apply()、bind()调用,this指向被绑定的对象;
3、函数作为方法被调用,this指向这个对象(即常说的对象上下文);
4、默认(非严格模式)情况下,this指向window,  严格模式下,this指向undefined。

4)闭包
闭包的理解:
闭包就是能够读取其他函数内部变量的函数
可以把闭包简单理解成“定义在一个函数内部的函数”。
所以,在本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的作用:
闭包可以用在许多地方。它的最大用处有两个,一个是可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
优点:灵活和方便、封装。
缺点:空间浪费、内存泄露、性能消耗。
5)作用域
1.javascript没有块级作用域(for、while、if等括号中声明变量和括号外声明变量效果一样,在语句块外仍然可以访问)
2.javascript可以用!或+或()放在function前,为函数表达式写法,防止function前置形成函数声明,函数声明后加()会报语法错误



posted @ 2017-03-05 15:25  Lovebugs.cn  阅读(189)  评论(0编辑  收藏  举报