最快了解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/


 


相关文章
|
21天前
|
存储 JavaScript 前端开发
解释 JavaScript 中的作用域和作用域链的概念。
【4月更文挑战第4天】JavaScript作用域定义了变量和函数的可见范围,静态决定于编码时。每个函数作为对象拥有`scope`属性,关联运行期上下文集合。执行上下文在函数执行时创建,定义执行环境,每次调用函数都会生成独特上下文。作用域链是按层级组织的作用域集合,自内向外查找变量。变量查找遵循从当前执行上下文到全局上下文的顺序,若找不到则抛出异常。
21 6
|
21天前
|
JavaScript
变量和函数提升(js的问题)
变量和函数提升(js的问题)
|
1月前
|
自然语言处理 JavaScript 前端开发
深入理解JS的执行上下文、词法作用域和闭包(中)
深入理解JS的执行上下文、词法作用域和闭包(中)
|
1月前
|
存储 自然语言处理 JavaScript
深入理解JS的执行上下文、词法作用域和闭包(上)
深入理解JS的执行上下文、词法作用域和闭包(上)
|
23天前
|
JavaScript 前端开发
JavaScript 中如何检测一个变量是一个 String 类型?
JavaScript 中如何检测一个变量是一个 String 类型?
21 2
|
1月前
|
JavaScript 前端开发
js开发:请解释什么是作用域(scope),并说明全局作用域、局部作用域和块级作用域的区别。
JavaScript中的作用域规定了变量和函数的可见性与生命周期。全局作用域适用于整个脚本,变量可通过全局对象访问,可能导致命名冲突和内存占用。局部作用域限于函数内部,每次调用创建新作用域,执行完毕后销毁。ES6引入的块级作用域通过`let`和`const`实现,变量仅在其代码块内有效,并有暂时性死区。作用域机制有助于代码组织和变量管理。
23 1
|
1月前
|
JavaScript 前端开发
JS作用域与作用域链
JS作用域与作用域链
|
1月前
|
自然语言处理 JavaScript 前端开发
深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(下)
深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(下)
|
1月前
|
JavaScript 前端开发
深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(上)
深入探索 JS 的提升机制、函数与块作用域以及函数表达式和声明(上)
|
1月前
|
自然语言处理 JavaScript 前端开发
深入理解JS的执行上下文、词法作用域和闭包(下)
深入理解JS的执行上下文、词法作用域和闭包(下)