过去,javascript缺乏块级作用域,var声明时的声明提升、属性变量等行为让人困惑。ES6的新语法可以帮助我们更好地控制作用域。 一、var声明 1、变量提升:var声明会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined 如果没有javascript开发经验,可能会认为只 ...
分类:
其他好文 时间:
2017-12-05 01:00:51
阅读次数:
187
在javascript中, 理解变量的作用域以及变量提升是非常有必要的,特别是对于初学者,很容易莫名地就掉坑里。 一、javaScript作用域 在C语言中,一对花括号{}代表一个独立的作用域,我们称之为块级作用域。一个块级作用域中,只作用于该块的变量可以被声明,只会影响快内而不会影响块外面的作用域 ...
分类:
编程语言 时间:
2017-12-03 20:54:46
阅读次数:
228
【作用域】javascript中的作用域可以理解为一个语句执行的环境大小,有全局的作用域,函数作用域和eval作用域。在JS中没有块级作用域。讲到作用域,不得不讲执行环境,执行环境在JS中是最为重要的概念。执行环境定义了变量或函数有权访问的其他数据,决定了他们各自的行为。每个执行环境都有一个与之关联 ...
分类:
编程语言 时间:
2017-12-01 18:37:30
阅读次数:
191
我们先上一段 var 代码 因此我们发现 var 申明变量会提前,而 let 声明属于块级作用域。 下面我们来看一个 for 经典: 可见这并不是我们想要的结果,若我们将 var 改为 let: 可见我们需要谨慎使用 var ,最后一个例: 若我们将 let i 改为 var i ,这将会有严重的作 ...
分类:
其他好文 时间:
2017-12-01 15:13:06
阅读次数:
195
一、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域。变量提升即将变量声明提升到它所在作用域的最开始的部分。 (1) 创建函数有两种形式,一种是函数声明,另外一种是函数字面量, 只有函数声明才有变量提升 相当于 (2)变量提升 ...
分类:
其他好文 时间:
2017-11-29 11:38:44
阅读次数:
166
let: 块级作用域变量声明 const: 常量声明 class: 声明类,extend: 类的继承 supper: 指代引用父类,调用父类方法,this为父类对象,可supper()后,修改父类信息来改变输出 arrow function: 箭头函数,函数中this表示自己,而不是全局 templ ...
分类:
其他好文 时间:
2017-11-27 21:36:35
阅读次数:
96
1,js中关于函数提升(在ES5中) 在ES6中用let声明就会产生块级作用域,不用立即执行匿名函数了 2. ...
分类:
Web程序 时间:
2017-11-26 17:46:23
阅读次数:
200
1 引用 1.1 对所有的引用使用 const ,不要使用 var。 (这能确保你无法对引用重新赋值,也不会导致出现 bug 或难以理解) 1.2 如果一定需要可变动的引用,使用 let 代替 var。 (因为 let 是块级作用域,而 var 是函数作用域。) 2 对象 2.1 使用字面值创建对象 ...
分类:
编程语言 时间:
2017-11-22 17:53:10
阅读次数:
192
1. 原始值和引用值(Value vs. Reference) 理解对象、数组和函数是如何复制和传递到函数中的。了解引用值是被复制了什么,理解原始值是通过复制值来进行复制和传递的。 2. 域(Scope) 理解全局域、函数域以及块级作用域之间的区别。了解变量在哪里是可用的,了解 JavaScript ...
分类:
编程语言 时间:
2017-11-20 19:11:15
阅读次数:
116