JS执行上下文(执行环境)详细图解 先随便放张图 先随便放张图 我们在JS学习初期或者面试的时候常常会遇到考核变量提升的思考题。比如先来一个简单一点的。 暂时先不管这个例子,我们先引入一个JavaScript中最基础,但同时也是最重要的一个概念执行上下文(Execution Context)。 每次 ...
分类:
Web程序 时间:
2017-12-04 11:42:38
阅读次数:
155
在javascript中, 理解变量的作用域以及变量提升是非常有必要的,特别是对于初学者,很容易莫名地就掉坑里。 一、javaScript作用域 在C语言中,一对花括号{}代表一个独立的作用域,我们称之为块级作用域。一个块级作用域中,只作用于该块的变量可以被声明,只会影响快内而不会影响块外面的作用域 ...
分类:
编程语言 时间:
2017-12-03 20:54:46
阅读次数:
228
在本文中,笔者将用通俗的语言和简单的代码,介绍以下几种概念: 变量提升 this的使用场景 作用域 闭包的应用 最后还有一个例题 变量提升 首先我们要知道,js的执行顺序是由上到下的,但这个顺序,并不完全取决于你,因为js中存在变量的声明提升。 这里比较简单,直接上代码 结果 打印a的时候,a并没有 ...
分类:
编程语言 时间:
2017-12-01 13:37:56
阅读次数:
130
一、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。 (1) 创建函数有两种形式,一种是函数声明,另外一种是函数字面量, 只有函数声明才有变量提升 相当于 (2)变量提升 ...
分类:
其他好文 时间:
2017-11-29 11:38:44
阅读次数:
166
es6重点理解 1.let,const let: 特性: 1> 块级作用域//块级作用域的出现,实际上使得获得广泛应用的立即执行函数表达式(IIFE)不再必要了 2> 不存在变量提升 3> 在let声明之前,变量都是不可用的 const:const声明一个只读的常量。一旦声明,常量的值就不能改变。 ...
分类:
其他好文 时间:
2017-11-17 23:27:01
阅读次数:
219
词法分析 词法分析方法: js运行前有一个类似编译的过程即词法分析,词法分析主要有三个步骤: 分析参数 再分析变量的声明 分析函数说明 具体步骤如下: 函数在运行的瞬间,生成一个活动对象(Active Object),简称AO 分析参数 分析变量声明,如var age;或var age=23; 分析 ...
分类:
编程语言 时间:
2017-11-12 14:11:33
阅读次数:
203
let命令 学习笔记 1、let所声明的变量,只在let命令所在的代码块内有效。 2、不存在变量提升:所声明的变量一定要在声明后使用,否则报错。 一定要先声明,再去使用。let x=x;这样就是错误的 3、不允许重复声明:let不允许在相同作用域内,重复声明同一个变量。即不能在函数内部重新声明参数。 ...
分类:
其他好文 时间:
2017-11-08 17:48:33
阅读次数:
184
javascript变量提升 1,首先运行以下代码查看结果 var v='Hello World'; alert(v); var v='Hello World'; (function(){ alert(v); })() var v='Hello World'; (function(){ alert( ...
分类:
编程语言 时间:
2017-11-08 17:42:51
阅读次数:
141
/*声明: * 本文内容多为学习借鉴性内容,大部分非原创 * 特别感谢阮一峰的 ECMAScript6 入门,推荐大家学习 */ 一.es5变量声明的不足 1.变量提升和函数声明提升 es5的代码加载顺序是自上而下的但是 var和function(不包含函数表达式)的声明,(不包含赋值),会得到优先 ...
分类:
其他好文 时间:
2017-10-31 11:13:30
阅读次数:
190