作用域

  • 变量和函数的生效范围

    1.根据作用域,可以把变量和函数分为 全局变量 和 局部变量.

    2.JS中的作用域是 函数级作用域 ,而c语言中的作用域是块级作用域.

    3.全局变量 和 全局函数(只要不在函数中声明的变量和函数,都是全局变量和函数.)

    对于全局变量和全局函数,作用域整个script标签,生命周期跟整个页面一样.

    对于局部变量和局部函数(在一个函数内部声明的),作用域就是当前函数的函数体

    4.JS内存管理: 都是垃圾回收机制,系统自动管理,当变量或者函数,超出作用域,该变量和函数的内存空间,就会被垃圾回收机制回收,程序员不需要自己手动管理.

  • 特性

    1. JS中,不能在外边直接访问函数中的局部变量和函数,但是在函数中,可以访问外边的全局变量和全局函数,外面看不见里面,里面看见外边.

    2. 在函数中声明变量时,不加var,相于对window的全局属性赋值,是全局变量.(一定要结合第3点),保证该函数作用域中,没有与之同名的局部变量.

    3. 就近原则,访问变量时,会先在当前作用域中查看有没有该变量名或者函数名,如果有优先使用该作用域中的的变量名,如果没有继续往上查看父级作用域,依次找到全局作用域,如果还没有,系统报错

    4. 函数的作用域在定义时,就已经形成了,跟调用位置无关.

    5. 在下面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(作用域)相关推荐

  1. spring bean scope作用域及多线程安全问题场景分析

    2019独角兽企业重金招聘Python工程师标准>>> Scope作用域 在 Spring IoC 容器中具有以下几种作用域: singleton:单例模式,在整个Spring Io ...

  2. AngularJS Scope(作用域)

    Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带 Scope 是一个对象,有可用的方法和属性 创建控制器时,你可以将 $scope 对象当作一个参数传 ...

  3. html 根作用域,AngularJS入门教程之Scope(作用域)

    AngularJS Scope(作用域) Scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带. Scope 是一个对象,有可用的方法和属性. Scope ...

  4. maven常用scope作用域说明

    maven常用scope作用域:compile.runtime.provided.test.system. compile:scope的默认值,编译期.运行期有效,常见的jar比如:spring-co ...

  5. Angular 中得 scope 作用域梳理

    2019独角兽企业重金招聘Python工程师标准>>> $scope 的使用贯穿整个 Angular App 应用,它与数据模型相关联,同时也是表达式执行的上下文.有了 $scope ...

  6. Spring注解开发-@Scope作用域注解

    @Scope用来描述bean的作用域.

  7. 站住,Maven依赖的scope作用域,还记得几个?

    小明今天带大家回顾一下maven依赖的作用域 在POM中,<dependency>引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: c ...

  8. [AST基础篇]Scope作用域详解

    目录 文章目录 目录 前言 Scope 的用法 scope.block scope.dump scope.getBinding scope.getOwnBinding scope.traverse s ...

  9. java的scope_spring中@Scope作用域的注解

    @Scope简单点说就是用来指定bean的作用域 官方解释是:scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间,即在IOC容器在对象进入相应的scope之前,生成并装配这些对 ...

  10. scope在c语言中什么意思,JavaScript scope作用域与this关键字

    作为一个程序员, 你可能早已经习惯于面向对象语言中指代当前对象的引用(或者指针), 如的c++中的this或者 python 中的self,当然具有OO属性( javascript 其实更多的是一种所 ...

最新文章

  1. #define、#undef、#ifdef、#ifndef、#if、#elif、#else、#endif、defined解释
  2. 安装debian总结以及编译linux内核
  3. 树莓派悄悄放了个微软“后门”,系统加入微软源却未告知,用户怒了
  4. lunix下的redis数据库操作——hash(哈希)
  5. QT的QRandomGenerator类的使用
  6. 网站服务器睡眠后还能访问吗,远程服务器可以睡眠吗
  7. Mybatis之typeAlias配置的3种方法
  8. Jack Dorsey二度卸任推特CEO,原CTO接棒,立即生效!
  9. C compiler test failed.
  10. CODING 助力江苏高速信息实现组织敏捷与研发敏捷,领跑智慧交通新基建
  11. CocosCreator学习示例合集v3.4.2
  12. OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
  13. 《软件设计师》备考笔记
  14. 迅捷路由器服务器未响应,迅捷(FAST)路由器无法登陆falogin.cn解决办法 | 192.168.1.1登陆页面...
  15. 手把手推导APM的 sqrt_controller控制器
  16. (c++)求平均成绩和优秀率
  17. Codeforces 148D. Bag of mice(概率dp)
  18. BTC源码分析 交易(一)
  19. 轻松解决 Eclipse Indigo 3.7 中文字体偏小,完美 Consolas 微软雅黑混合字体!
  20. 关于 Python PyQt5 界面运行时提示无法初始化Qt平台的解决方案

热门文章

  1. ode45 matlab 出错,请问,Matlab用ODE45解微分方程,出错
  2. 走进android的世界(不断更新中)
  3. laydate日期插件使用
  4. 安恒杯月赛 babypass getshell不用英文字母和数字
  5. Vue插值文本换行问题
  6. ubuntu初识一(装机)
  7. jquery.roundabout.js图片叠加3D旋转
  8. 边工作边刷题:70天一遍leetcode: day 67-1
  9. C语言字符串库函数的实现
  10. 详解 height 和 width 属性