Javascript函数之函数的作用域是什么详解
1、引出作用域
以下两种情况都会报错
for (let i = 0; i < 3; i++) {
document.write('怎么回事呢')
}
console.log(i) //Uncaught ReferenceError: i is not defined function fun() {
let num2 = 30
}
fun()
console.log(num2) //um2 is not defined2、作用域定义
通常来说,一般程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。
作用域的使用提高了程序逻辑的局部性,增强了程序的可靠性,减少名字冲突。
现阶段作用域分为全局作用域和局部作用域
3、全局作用域
全局有效
作用于所有代码执行的环境(整个script标签内部)或者一个独立的js文件。
全局变量在任何区域都可以访问和修改

4、局部作用域
局部有效
作用于函数内的代码环境,就是局部作用域。因为跟函数有关系,所以也称为函数作用域。
局部变量只能在当前函数内部访问和修改

5、特殊变量情况
变量有一个坑,特殊情况:
如果函数内部,变量没有声明,直接赋值,也当全局变量看,但是强烈不推荐。

函数内部的形参可以看做是局部变量,在函数内部可以使用。

6、变量访问原则
在不同作用域下,可能存在变量命名冲突的情况,到底该执行谁呢?即【就近原则】
(1)只要是代码,就至少有一个作用域
(2)写在函数内部的局部作用域
(3)如果函数中还有函数,那么在这个作用域中就又可以诞生一个作用域
(4)访问原则:在能够访问到的情况下,先布局,局部没有再找全局

总结
到此这篇关于Javascript函数之函数的作用域是什么的文章就介绍到这了,更多相关js函数的作用域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
今天测试代码时,发现不少IE可以运行的ajax,但在FF中报错。IE和Firefox(火狐)在JavaScript方面的不兼容及统一方法总结如下,需要的朋友可以看下,对于以后的代码书写一定要考虑到多浏览器的兼容性。2010-04-04


最新评论