全局环境&执行流程&错误类型&垃圾回收机制&闭包&函数&回调函数
全局环境
1.函数中的this表示改函数所属的对象
2.window对象的成员在调用时可以省略window
执行流程
1.编译代码:当前script代码段,检查语法、词法是否有错误,加载到内存中准备执行
2.执行代码:执行代码,在执行下一个带有script的代码段
错误类型
1.编译错误:简单理解为语法错误,错误所在的script代码段错误,影响该代码段全部终止执行,但是不会影响其他代码段
2.执行类型错误:调用上的错误,比如调用一个不存在的函数,带代码段之前的正常执行,之后的不执行,不影响其他代码段
JS垃圾回收机制
什么是垃圾回收机制:代码在执行的时候,会将代码加载到内存中,也就是声明变量,如果变量或函数没有用了,浏览器会根据它的垃圾回收机制自动回收不在使用的变量。
JS垃圾回收机制有两种:
1.引用计数形式,计数次数为零,定期释放内存
2.标记清除机制,给内存标记,如果使用了内存,就将标记清除。定期将有标记的内存删除
闭包
什么是闭包?
JS有两链一包的说法,两链是作用域链和原型链,一包就是闭包。
闭包,指的是词法表示包括不被计算的变量的函数,也就是说,函数可以使用函数之外定义的变量。
1.闭包会造成内存不会被释放
2.闭包使得函数外部可以访问内部的变量
虽然闭包有很多好处,但是不建议大家经常使用闭包程序,可能会产生内存泄漏。
函数进阶
1.函数是值
凡是可以使用值的地方都可以使用函数,函数只是一个可以执行的值
2.函数是对象
函数也可以使用对象那样的点语法
3.函数是函数
arguments对象
arguments对象,存在于函数的内部,它能够表达函数的实际参数(实参),除此以外,arguments对象还有一个属性callee,它表示函数的名字,arguments的length属性表示实参的个数。
回调函数
将函数作为值传递给另一个函数