1.ES6学习之let、const (1).var、let、const 变(常)量声明 ES5 只有全局作用域和函数作用域,没有块级作用域,这带来很多不合理的场景。 在ES6中let就诞生了,实际上它为javascript新增了块级作用域。 let只在变量声明时 ,所在的代码块中有效。 由于这一特性 ...
分类:
其他好文 时间:
2017-06-23 19:38:36
阅读次数:
253
先上一小段代码: 敲黑板,说概念,通俗的说:闭包就是有权访问另外一个函数作用域变量的函数。 再说一个变量提升的概念吧; 相当于下面的代码: 原文链接:http://www.cduyzh.com/js-closure/ ...
分类:
编程语言 时间:
2017-06-18 15:07:03
阅读次数:
137
递归调用、高阶函数、函数作用域、python内置函数、装饰器、模块、random、json串和积累 一、递归调用 递归调用就是一个函数自己调用自己,自我调用最多调用999次。 特性:1.必须有一个明确的结束条件; 2.每次进入更深一层递归时,问题规模相比上次递归都应该有所减少; 3.递归效率不高,建 ...
分类:
编程语言 时间:
2017-06-16 23:11:32
阅读次数:
292
var/let/const都用来声明变量,但各有区别。 使用var会弹出“3”,可见在块外,块中定义的变量i仍然是可以访问的。也就是说,使用var声明变量是不支持块级作用域,容易泄露成为全局变量。它只支持函数作用域,而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。使用var可能会 ...
分类:
其他好文 时间:
2017-06-14 18:11:35
阅读次数:
138
闭包(closure)是Javascript语言的一个难点,也是它的特色。非常多高级应用都要依靠闭包实现。 神马是闭包 关于闭包的概念,是婆说婆有理。因而,我就翻阅了红皮书(p178)上对于闭包的陈述: 闭包是指有权訪问另外一个函数作用域中的变量的函数 这概念有点绕,拆分一下。从概念上说,闭包有两个 ...
分类:
其他好文 时间:
2017-06-14 14:22:13
阅读次数:
122
最近又重新学习了闭包,发现之前没有深刻理解作用域链,学习作用域链后对闭包才可以做到真正的理解。 闭包是指有权另一个函数作用域中变量的函数。要理解闭包首先理解作用域链。 执行环境定义了变量或函数有权访问的其他数据,决定了它们各自的行为。每个执行环境都有与之关联的变量对象,保存了环境中定义的所有变量和函 ...
分类:
编程语言 时间:
2017-06-11 19:12:49
阅读次数:
215
面向对象和面向过程的区别 两者都是软件开发思想,先有面向过程,后有面向对象。在大型项目中,针对面向过程的不足推出了面向对象开发思想。区别1. 编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类、属性及其方法,然后通过实例化类、执行方法来完成功能。2. 封装性:都具有封装性,但 ...
分类:
其他好文 时间:
2017-06-09 20:17:30
阅读次数:
101
变量,作为编程语言最基础的部分,每种语言的变量不尽相同,但又大径相庭。大部分编程语言的变量有块级作用域,如if、for、while... 但JavaScript不纯在块级作用域,而是函数作用域,并且有自己独有的特性--变量提升。(ES6新添加的let、const使其可以用块级作用域) 对于函数的变量 ...
分类:
Web程序 时间:
2017-06-08 00:21:23
阅读次数:
336
由于ES5只有全局作用域和函数作用域,因此ES6增加块级作用域。 let用于定义变量,块级作用域,for循环建议使用let; let会引起变量提升,必须先声明,在调用; let声明的变量,不允许重复声明; let实际是创建了块级作用域,可以变成do表达式 例:let x = do { let t = ...
分类:
其他好文 时间:
2017-06-06 15:54:16
阅读次数:
124
ES5中只有函数作用域和全局作用域,声明变量使用var,在es6中添加声明变量 let const let 声明块级作用域变量, let 不存在变量提升 var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语 ...
分类:
其他好文 时间:
2017-06-02 11:35:06
阅读次数:
201