当前位置: 首页 > news >正文

作用域

小点备忘~

1、大部分情况下,JavaScript的编译是在代码执行前的几微秒时间内;

2、任何的Js代码在执行前都要先编译;

3、作用域是根据名称查找变量的一套规则;

4、当发生作用域嵌套时,查找作用域次序,首先在当前作用域(执行作用域)找变量,没有找到就到外层嵌套作用域中查找,直到找到变量或者到最外层作用域(全局作用域)为止;这个查找次序形成了词法作用域链;

5、ReferenceError,是指作用域查找出错,压根没这个东西;TypeError,是指作用域找到了,但是操作不合法;

6、作用域查找会在第一个匹配的标识符时停止;在多层嵌套作用域中,内部可以定义与外层重名的变量,此时就会发生“遮蔽效应”,即内部

7、变量遮盖了外部变量标识符;其中全局变量可以通过window.a直接访问,可以避免被遮罩,但是非全局的变量就没办法了;

8、改变函数作用域: 方法1,eval('str'),例子如下:

function foo (str, a) {
  eval(str);
  console.log(b, a);// 输出1,3。其中var b = 1就是改变了作用域,插进来的,内部作用域遮盖了外部的作用域b = 2
}
var b = 2
foo ("var b = 1", 3);
复制代码

其中,在严格模式"use strict",eval有自己的作用域,无法覆盖当前作用域,用eval会出现reference error,如:

function foo (str, a) {
  eval(str);
  console.log(a); // reference error
}
foo("var a = 2");
复制代码

方法2,with关键字 with,方便快捷的引用对象的某一属性

相关文章:

  • 二 APPIUM Android自动化 环境搭建(转)
  • [20170713] 无法访问SQL Server
  • elaselasticsearch分片交互过程
  • Visual Studio 2017使用
  • springboot devtools 嵌套jar 序列化错误 java.lang.ClassCastException 完美解决方案
  • lab5打卡
  • 折腾了几个月,终于调教出一架可以抢车位的无人机。然而…
  • Vue实战(四)登录/注册页的实现
  • TROUBLESHOOTING GUIDE TNS-12518 TNS listener could not hand off client connection
  • 数据结构--zkw线段树
  • GraphicsStatsService之1-dump数据的实现
  • Nginx(转)
  • react-create-app
  • 好用的Vue状态管理模式:浅谈Vuet在实际应用中解决的问题
  • Android 解决 View 的滑动冲突
  • 深入了解以太坊
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • Angular4 模板式表单用法以及验证
  • HashMap剖析之内部结构
  • JavaScript新鲜事·第5期
  • Java知识点总结(JavaIO-打印流)
  • Linux各目录及每个目录的详细介绍
  • mysql innodb 索引使用指南
  • Python连接Oracle
  • vue.js框架原理浅析
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 关于extract.autodesk.io的一些说明
  • 缓存与缓冲
  • 简单基于spring的redis配置(单机和集群模式)
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 如何使用 OAuth 2.0 将 LinkedIn 集成入 iOS 应用
  • 入手阿里云新服务器的部署NODE
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 提醒我喝水chrome插件开发指南
  • 微服务入门【系列视频课程】
  • 我这样减少了26.5M Java内存!
  • 怎么将电脑中的声音录制成WAV格式
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ${factoryList }后面有空格不影响
  • (11)MATLAB PCA+SVM 人脸识别
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (教学思路 C#之类三)方法参数类型(ref、out、parmas)
  • (四)JPA - JQPL 实现增删改查
  • (转) Face-Resources
  • (转载)(官方)UE4--图像编程----着色器开发
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET Reactor简单使用教程
  • .net 发送邮件
  • .NET 中 GetProcess 相关方法的性能
  • .Net的C#语言取月份数值对应的MonthName值
  • .NET值类型变量“活”在哪?
  • .NET中的十进制浮点类型,徐汇区网站设计
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • []sim300 GPRS数据收发程序
  • [C#C++]类CLASS