javascript忍者秘籍

一、函数
1、函数是第一型对象
2、浏览器负责事件轮询和事件派发,代码负责建立事件处理程序(handler)
3、浏览器轮询是单线程的
4、回调函数
5、函数提前引用
6、作用域由函数声明,而不是代码块
8、从参数到函数形参
如果实际传递的参数比定义的多,则超出部分不匹配
如果实际传递的参数比定义的少,匹配不到的值为undefined
9、函数的隐式参数:
arguments:类数组形式,可以遍历,但是却不是数组,没有数组其他特性
this:调用上下文
7、不同的函数调用,函数上下文:
- 作为函数调用:函数上下文this是全局上下文,window
- 作为方法进行调用:函数上下文this是对应的对象
- 作为构造进行调用:函数调用前使用new关键字,this新分配一个对象
- 通过aplay或者call调用,所有函数都具有的方法
10、匿名函数
避免不必要的函数名称污染全局空间
11、递归
包含有函数自身的调用,有终止条件
12、函数存储
!!是将数据成功转成等效布尔的方式
13、函数重载
引导Array函数将一个非数组当成一个数组来看待

Array.prototype.slice.call(els)

14、函数判断
Object.prototype.toString.call(fn)===’[object Function]’
15、函数拥有length属性
用于指明定义参数的个数

16、闭包
能够让函数访问所有变量和函数

即时函数

二、函数原型
1、原型上定义的属性和功能会自动应用到对象的实例上
2、所有的函数在定义后都有一个原型属性,该值为空对象
3、函数普通调用和作为构造器调用的区别:
函数作为构造器进行调用时,函数的原型是新对象的概览,通过原型给函数附加属性。new操作符将函数作为构造器进行调用,新创建一个对象,返回改新对象的引用,创建的实例执行该新对象。
4、原型允许我们定义一些属性和方法,这些属性和方法会自动应用大新对象的实例上

三、正则表达式
如果一个字符不是特殊字符,也不是操作符,则必须出现在匹配字符串中
1 、[abc]匹配字符集中任意一个字符
2、[ ^abc]匹配abc字符以外的字符
3、转义\?
4、匹配开始^test
5、匹配结束test$
6、重复出现
t?esfg表示t可以出现一次或根本不出现
t+esfg表示t出现一次或者多次
t*esfg表示t出现零次或者多次
t{2,5}esfg表示t出现2-5次
t{2,}esfg表示t出现2次,或者多于2次

7、预定义字符类
\d:[0-9]
\D:[^0-9]
\w:[A-Za-z0-9]
\W:[^A-Za-z0-9]
\s:任意空白字符
\S:任意非空白字符
\b:单词边界
\B:非单词边界
.:除新行以外的字符

8、()
9、|
10、反向引用,/^([abc])f\1/i其中\1表示匹配第一次捕获字符串一样
11、包括编译和执行两个阶段
编译:通过字面量或者构造器方式,构造器方法允许使用变量
编译后可以使用test(str)函数执行

四:定时器
setTimeout和setInterval工作模式不一样

你可能感兴趣的:(javascript)