最快了解JavaScript变量的作用域

简介: JavaScript变量的作用域 作用域就是可访问的变量的集合。 在JavaScript中变量的作用域分为两种,一种是全局作用域(变量),一种是局部作用域(变量)。 同时在 JavaScript 中, 对象和函数同样也是变量。1.全局变量(作用于全局的变量) // 1.全局变量 作用于全局 函数体之内可以访问 // 在所有的函数外面声明的变量 var global="全局变量"; function func1() { console.log(global); } func1();

JavaScript变量的作用域




   作用域就是可访问的变量的集合。


   在JavaScript中变量的作用域分为两种,一种是全局作用域(变量),一种是局部作用域(变量)。


   同时在 JavaScript 中, 对象和函数同样也是变量。



1.全局变量(作用于全局的变量)



// 1.全局变量   作用于全局   函数体之内可以访问// 在所有的函数外面声明的变量varglobal="全局变量";
functionfunc1() {
console.log(global);
    }
func1();
functionfunc2() {
console.log(global);
    }
func2();
functionfunc3() {
console.log(global);
    }
func3();
// 2.不声明 直接赋值的变量  为全局变量functionfunc5(){
m=10;
    }
func5();
console.log(m);//10/*当浏览器解析到没有声明,直接赋值的变量时,会自动将变量作为 window 的一个属性。所以不声明直接赋值的变量为全局变量。*/str="hello";
console.log(window.str);
// delete 关键词   删除// 全局对象可以配置属性,可以删除varnum=20;
arr=[1,2,3];//window.arrconsole.log(num);
console.log(arr);
deletenum;
deletearr;
console.log(num);
console.log(arr);//arr is not defined/* 生命周期1.变量从 被声明时开始2.全局变量  页面关闭时结束3.局部变量  函数执行完结束*/


   当浏览器解析到没有声明,直接赋值的变量时,会自动将变量作为 window 的一个属性。所以不声明直接赋值的变量为全局变量。


   全局对象可以配置属性,可以删除


   全局变量,或者函数,可以覆盖 window 对象的变量或者函数。


   局部变量,包括 window 对象可以覆盖全局变量和函数。


2.局部变量(只作用于函数内部的变量)

// 3.局部变量  局部作用域   // 变量在函数内声明  只作用于函数内functionfunc4(){
varx=10;
console.log(x);
    }
func4();//10//变量x作用域函数func4内部,函数外面访问不到,所以报错console.log(x);//x is not defined


视频讲解地址:
1.https://www.bilibili.com/video/BV1fQ4y1N7RE/


 


相关文章
|
17天前
|
JavaScript 前端开发
js的作用域作用域链
【10月更文挑战第29天】理解JavaScript的作用域和作用域链对于正确理解变量的访问和生命周期、避免变量命名冲突以及编写高质量的JavaScript代码都具有重要意义。在实际开发中,需要合理地利用作用域和作用域链来组织代码结构,提高代码的可读性和可维护性。
|
2月前
|
JavaScript 前端开发
JavaScript如何判断变量undefined
JavaScript如何判断变量undefined
|
2月前
|
JavaScript 前端开发
JavaScript基础知识-变量的声明提前
关于JavaScript变量声明提前特性的基础知识介绍。
46 0
JavaScript基础知识-变量的声明提前
|
17天前
|
自然语言处理 JavaScript 前端开发
[JS]作用域的“生产者”——词法作用域
本文介绍了JavaScript中的作用域模型与作用域,包括词法作用域和动态作用域的区别,以及全局作用域、函数作用域和块级作用域的特点。通过具体示例详细解析了变量提升、块级作用域中的暂时性死区等问题,并探讨了如何在循环中使用`var`和`let`的不同效果。最后,介绍了两种可以“欺骗”词法作用域的方法:`eval(str)`和`with(obj)`。文章结合了多位博主的总结,帮助读者更快速、便捷地掌握这些知识点。
29 2
[JS]作用域的“生产者”——词法作用域
|
18天前
|
前端开发 JavaScript
如何在 JavaScript 中访问和修改 CSS 变量?
【10月更文挑战第28天】通过以上方法,可以在JavaScript中灵活地访问和修改CSS变量,从而实现根据用户交互、页面状态等动态地改变页面样式,为网页添加更多的交互性和动态效果。在实际应用中,可以根据具体的需求和场景选择合适的方法来操作CSS变量。
|
18天前
|
前端开发 JavaScript 数据处理
CSS 变量的作用域和 JavaScript 变量的作用域有什么不同?
【10月更文挑战第28天】CSS变量和JavaScript变量虽然都有各自的作用域概念,但由于它们所属的语言和应用场景不同,其作用域的定义、范围、覆盖规则以及与其他语言特性的交互方式等方面都存在明显的差异。理解这些差异有助于更好地在Web开发中分别运用它们来实现预期的页面效果和功能逻辑。
|
17天前
|
JavaScript 前端开发
如何在 JavaScript 中实现块级作用域?
【10月更文挑战第29天】通过使用 `let`、`const` 关键字、立即执行函数表达式以及模块模式等方法,可以在JavaScript中有效地实现块级作用域,更好地控制变量的生命周期和访问权限,提高代码的可维护性和可读性。
|
25天前
|
JavaScript 前端开发
javascript的作用域
【10月更文挑战第19天javascript的作用域
|
18天前
|
前端开发 JavaScript UED
如何使用 JavaScript 动态修改 CSS 变量的值?
【10月更文挑战第28天】使用JavaScript动态修改CSS变量的值可以为页面带来更丰富的交互效果和动态样式变化,根据不同的应用场景和需求,可以选择合适的方法来实现CSS变量的动态修改,从而提高页面的灵活性和用户体验。
|
30天前
|
JavaScript 前端开发
JavaScript 作用域
JavaScript 作用域是指程序中可访问的变量、对象和函数的集合。它分为函数作用域和局部作用域。函数作用域内的变量仅在函数内部可见,而全局作用域的变量在整个网页中均可访问。局部变量在函数执行完毕后会被销毁,而全局变量则在整个脚本生命周期中都存在。未使用 `var` 关键字声明的变量默认为全局变量。