1.let 基本用法:let声明的变量,只在let命令所在的代码块内有效 for循环内的var和let声明 var声明会产生一个全局变量i,循环结束后i=5 let声明的变量i,只在本轮循环中有效,相当于每次循环都会重新声明新的变量i,且只在声明的块作用域内有效 不存在变量提升 let声明的变量不能 ...
分类:
其他好文 时间:
2017-10-26 13:32:27
阅读次数:
135
#var声明及变量提升机制 在 函数作用域 或 全局作用域中通过 var 声明的变量,无论实际上在哪里声明的,都会被当成在 当前作用域顶部声明的变量。这就是常说的提升机制; function func(condition){ if(condition){ var value="xxx"; retur ...
分类:
其他好文 时间:
2017-10-23 00:59:09
阅读次数:
123
原文说是深入理解,但是写的很简单,233,原文链接:http://www.cnblogs.com/kawask/p/6225317.html,我这里加了点解释,所以就不标明是纯转载文章了,233 一、变量提升 在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有 ...
分类:
Web程序 时间:
2017-10-22 23:32:23
阅读次数:
225
ES6中的Class和JS的比起来无疑是让对象原型的写法更加清晰,更像面向对象编程的语法而已,注意一个问题ES6里面的Class的内部定义的所有方法都是不可枚举的,而且在ES6中Class不存在变量提升。(注意:Class同时具有prototype属性和__proto__属性,所以同时存在两条继承链 ...
分类:
其他好文 时间:
2017-10-21 18:58:37
阅读次数:
140
一直以来小编对js函数作用域及变量提升的理论知识,虽然看了多次,但也是一知半解~ 这几天做了几道js小题,对这部分进行了从新的理解,还是有所收获的~ 主要参考书籍: 《你不知道的JavaScript(上卷)》第一部分 《JavaScript高级程序设计》第四章 4.2 执行环境与作用域 理解要点: ...
分类:
Web程序 时间:
2017-10-16 11:01:51
阅读次数:
164
初版 用css3来实现弹幕确实比较简单,只需要设置动画让弹幕从屏幕右侧移动到屏幕左侧即可,一开始是这样实现的 .danmu { position: fixed; left: 100%; animation: danmu 5s linear 0s 1; } @keyframes danmu { fro ...
分类:
Web程序 时间:
2017-10-10 21:47:23
阅读次数:
226
一. ES6 ES6中定义变量使用 let/const let 使用let定义的变量不能进行"变量提升" 同一个作用域中,let不能重复定义相同的变量名 使用var在全局作用域中定义的变量相当于给window增加了一个私有的属性,但是使用let定义的变量和window没有任何的关系 const 除了 ...
分类:
其他好文 时间:
2017-10-09 14:09:02
阅读次数:
187
javascript执行分为2个步骤: 1.编译(词法解释/预解释) 2.执行 例子1; <script> var a; //属于编译阶段 console.log( a ); //结果是undefined a = 'xiaoA'; //是属于执行阶段 </script> 例子2; <script> ...
分类:
其他好文 时间:
2017-10-02 18:25:43
阅读次数:
161
Var let const 的区别 1.Var 定义的变量存在变量提升,而了let和const不存在变量提升。即在定义的变量代码上使用该变量,var的会输出undefined,而let的会报错。 2.var不存在暂时性死区,而let存在,只要块级作用域内存在let,它所声明的变量就绑定了这个区域,不 ...
分类:
其他好文 时间:
2017-09-29 21:19:13
阅读次数:
666
1.javascript引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行的运行,这造成的结果就是所有变量的声明语句,都会被提升到代码头部,这就叫变量的提升,请注意,变量提升只对var命令声明的变量有效,如果一个变量不是用var声明的,就不会发生变量提升。 2.javascript的 ...
分类:
编程语言 时间:
2017-09-27 13:09:49
阅读次数:
155