Java教程

闭包、window、声明提升、作用域以及作用域链

本文主要是介绍闭包、window、声明提升、作用域以及作用域链,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

window对象是什么?

每个网页都自带一个window对象, 保存了JS中所有的 变量/函数, window也被称为 全局区域
函数接受不固定数量的参数, 用什么方式?
arguments : 函数自带的, 自动保存所有传入的参数, 并且带有length属性, 代表参数个数
利用 for(var i=0; i<length; i++) 可以遍历所有参数
arguments[i]

什么是 函数重载, 如何做?

此概念是C语言提出, 一个函数可以通过参数个数不同/参数类型不同 在内部进行if判断, 来执行不同的逻辑操作.
优点: 合并类似功能的函数, 减少声明的函数数量.

声明提升?

预编译 : 一个js代码在真正执行之前, 需要预读一次, 把 声明(变量, 函数)先读取. 然后再顺序执行剩余代码
有一种称呼:第一公民: 函数/变量的声明 会优先处理!

作用域 和 作用域链?

作用域: Scope
JS中只有两种作用域: 全局--window 局部--函数内
作用域链: 函数内使用一个变量时, 会就近原则查找使用
自己有用自己的, 自己没有向父查找, 父没有就继续向上, 直到window中也没有, 才认为不存在!

闭包有什么用?

不想用全局变量 -- 全局变量不能重名,会覆盖
手动声明一个函数作用域来保存变量
大世界(window)中 创建小世界(函数), 可以创建无数个
这篇关于闭包、window、声明提升、作用域以及作用域链的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!