变量提升(Hoisting):在ES6之前, 和`变量声明`总是被JavaScript解释器隐式地提升(hoist)到包含他们的作用域的最顶端。 注意: 1. JavaScript 仅提升声明,而不提升初始化。2. ES6 中不存在变量提升的概念。 1. 变量提升 变量未声明: 变量在使用后声明: ...
分类:
编程语言 时间:
2018-11-28 17:34:39
阅读次数:
150
let 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 const 变量 1. 局部作用域 2. 不会存在变量提升 3. 变量不能重复声明 4. 只能声明常量,不可变得量 this 指向 关于this指向的问题,与vm实例没有任何关系。而是与箭头函数和普通函数的区别。给大家总 ...
分类:
其他好文 时间:
2018-11-27 01:13:01
阅读次数:
238
日常在群里讨论一些概念性的问题,比如变量提升,作用域和闭包相关问题的时候,经常会听一些大佬们给别人解释的时候说执行上下文,调用上下文巴拉巴拉,总有点似懂非懂,不明觉厉的感觉。今天,就对这两个概念梳理一下,加深对js基础核心的理解。 1. 执行上下文(execution context)与可执行代码( ...
分类:
Web程序 时间:
2018-11-25 13:14:42
阅读次数:
255
变量: 用var声明变量,如果只是声明变量而不赋值,则变量的值是undefined,表示无定义 不写·var也有效,但不建议 变量声明两次无效,但第二次声明时赋值会覆盖掉前面的值 变量提升: Js引擎工作方式是先解析代码,获取所有被声明的变量,然后再运行 所以: 不会报错 标识符: 命名规则如下: ...
分类:
Web程序 时间:
2018-11-25 12:04:04
阅读次数:
176
单例设计模式(SingLeton Pattern) var一个变量,存储一个对象 1.表现形式 var obj={xxx:xxx} 。在单例设计模式中,obj不仅仅是对象名,他被称为“命名空间”【NameSpace】,把描述事务的谁能够存放在命名空间中,多个命名空间是独立分开的,互不冲突。 2.作用 ...
分类:
Web程序 时间:
2018-11-21 16:06:07
阅读次数:
218
从上周开始,我所在的学习小组正式开始了angular的学习,angular是全面支持es6的,所以语法上和以前的angular有了很大的不同,比如变量声明时就抛弃了var,而选择了let和const;记得刚开始学习js的时候,使用webstrom时用var,webstrom会在下面画一条小绿线,表示 ...
分类:
Web程序 时间:
2018-11-16 15:01:55
阅读次数:
189
一. ES6的常用语法 1.变量提升 :let定义取消变量提升 2.模板字符串 :`` 及${}引用变量 3.数据解构:注意解构的数据类型要一致 4.类: class定义类,extends继承,constractor方法相当于py中的init方法 5.函数:注意this和普通函数的区别 6.函数的单 ...
分类:
其他好文 时间:
2018-11-15 21:11:29
阅读次数:
114
ES6常用语法 -- 变量 -- var 变量提升 -- let {} -- const 常量 -- 模板字符串 -- `` -- ${} -- 函数 -- 箭头函数 -- this -- 普通函数取决于函数最近的调用者 -- 箭头函数取决于当前上下文环境 -- 数据的解构 -- 注意语法 -- 类 ...
分类:
其他好文 时间:
2018-11-15 00:18:53
阅读次数:
196
1.Es6语法普及 let和var的区别: var:定义变量时,在全局范围内都有效;所以在变量没有声明之前就能使用,值为undefined, 称为变量提升; let:声明的变量一定要在声明后使用,而且在for循环时,变量都会被重新定义 let不允许在相同的作用域内,重复声明一个变量; // 报错 f ...
分类:
其他好文 时间:
2018-11-13 23:49:51
阅读次数:
197
总结: 用var声明变量时,变量提升到函数最顶部或全局最顶部。 总结: ES6语法的let声明变量时,只在{} 代码块中被声明,所以在相应代码块之外引用,会运行报错。 ...
分类:
Web程序 时间:
2018-11-12 11:14:54
阅读次数:
218