Scope(作用域)
作用域
变量和函数的生效范围
1.根据作用域,可以把变量和函数分为 全局变量 和 局部变量.
2.JS中的作用域是 函数级作用域 ,而c语言中的作用域是块级作用域.
3.全局变量 和 全局函数(只要不在函数中声明的变量和函数,都是全局变量和函数.)
对于全局变量和全局函数,作用域整个script标签,生命周期跟整个页面一样.
对于局部变量和局部函数(在一个函数内部声明的),作用域就是当前函数的函数体
4.JS内存管理: 都是垃圾回收机制,系统自动管理,当变量或者函数,超出作用域,该变量和函数的内存空间,就会被垃圾回收机制回收,程序员不需要自己手动管理.
特性
JS中,不能在外边直接访问函数中的局部变量和函数,但是在函数中,可以访问外边的全局变量和全局函数,外面看不见里面,里面看见外边.
在函数中声明变量时,不加var,相于对window的全局属性赋值,是全局变量.(一定要结合第3点),保证该函数作用域中,没有与之同名的局部变量.
就近原则,访问变量时,会先在当前作用域中查看有没有该变量名或者函数名,如果有优先使用该作用域中的的变量名,如果没有继续往上查看父级作用域,依次找到全局作用域,如果还没有,系统报错
函数的作用域在定义时,就已经形成了,跟调用位置无关.
在下面script标签中,可以访问上面script标签中的全局变量和全局函数(上面的不能访问下面的)
var a= 0;
if(true){console.log(a); // function a(){} 因为块中函数声明提升a = 1; // 块作用域中 a = 1; windows.a = 0;// 函数声明提升;// 特殊处理了,为了兼容ES3语法规范,会把当前的对a操作映射到全局作用域中(a = 1),但是这个代码之后,操作就和全局没有任何关系了。function a(){}; // a = 1; windwos.a = 1;console.log(a); // 1a = 21; // a = 21;console.log(a); // 21
}
console.log(a); // 1
https://serious-lose.notion.site/JS-Scope-0546273b45784a999f1571b5ef675222https://serious-lose.notion.site/JS-Scope-0546273b45784a999f1571b5ef675222
Scope(作用域)相关推荐
- spring bean scope作用域及多线程安全问题场景分析
2019独角兽企业重金招聘Python工程师标准>>> Scope作用域 在 Spring IoC 容器中具有以下几种作用域: singleton:单例模式,在整个Spring Io ...
- AngularJS Scope(作用域)
Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带 Scope 是一个对象,有可用的方法和属性 创建控制器时,你可以将 $scope 对象当作一个参数传 ...
- html 根作用域,AngularJS入门教程之Scope(作用域)
AngularJS Scope(作用域) Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope ...
- maven常用scope作用域说明
maven常用scope作用域:compile.runtime.provided.test.system. compile:scope的默认值,编译期.运行期有效,常见的jar比如:spring-co ...
- Angular 中得 scope 作用域梳理
2019独角兽企业重金招聘Python工程师标准>>> $scope 的使用贯穿整个 Angular App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $scope ...
- Spring注解开发-@Scope作用域注解
@Scope用来描述bean的作用域.
- 站住,Maven依赖的scope作用域,还记得几个?
小明今天带大家回顾一下maven依赖的作用域 在POM中,<dependency>引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: c ...
- [AST基础篇]Scope作用域详解
目录 文章目录 目录 前言 Scope 的用法 scope.block scope.dump scope.getBinding scope.getOwnBinding scope.traverse s ...
- java的scope_spring中@Scope作用域的注解
@Scope简单点说就是用来指定bean的作用域 官方解释是:scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对 ...
- scope在c语言中什么意思,JavaScript scope作用域与this关键字
作为一个程序员, 你可能早已经习惯于面向对象语言中指代当前对象的引用(或者指针), 如的c++中的this或者 python 中的self,当然具有OO属性( javascript 其实更多的是一种所 ...
最新文章
- #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined解释
- 安装debian总结以及编译linux内核
- 树莓派悄悄放了个微软“后门”,系统加入微软源却未告知,用户怒了
- lunix下的redis数据库操作——hash(哈希)
- QT的QRandomGenerator类的使用
- 网站服务器睡眠后还能访问吗,远程服务器可以睡眠吗
- Mybatis之typeAlias配置的3种方法
- Jack Dorsey二度卸任推特CEO,原CTO接棒,立即生效!
- C compiler test failed.
- CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建
- CocosCreator学习示例合集v3.4.2
- OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
- 《软件设计师》备考笔记
- 迅捷路由器服务器未响应,迅捷(FAST)路由器无法登陆falogin.cn解决办法 | 192.168.1.1登陆页面...
- 手把手推导APM的 sqrt_controller控制器
- (c++)求平均成绩和优秀率
- Codeforces 148D. Bag of mice(概率dp)
- BTC源码分析 交易(一)
- 轻松解决 Eclipse Indigo 3.7 中文字体偏小,完美 Consolas 微软雅黑混合字体!
- 关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案