三. var let const的理解 以及 立即执行函数中的使用 以及 for循环中的例子
一. 立即执行函数
windows中有个name属性,name='' ''
var
如果我们用var name 去声明,那就会改变windows中name的值(因为我们不是在函数作用域中声明的,所以会覆盖全局的值)
为了避免这种问题,通常我们写一个立即执行函数(可读性不高)
const
同样,如果我们用const去声明,也会改变全局的name属性
我们把const声明写在大括号里面,就不会改变全局的name属性了
二. for循环
常见的for循环,console.log(i) 会输出10,why? 这是因为 i 是通过 var 来声明的,是一个全局变量,每次循环都会重写这个变量 i
通常我们会在for循环中 进行ajax 请求,这边用setTimeout来模拟,1s后执行,会发现打印了10 打印了10次,why? 因为setTimeout执行的时候,for循环已经结束了
为了有效的解决上述问题,我们把var 改成 let ,这样就有效的解决了我们的问题了,因为 let 是块级作用域
要注意的是:不能使用const去声明,因为const是常量
三. var let const的理解 以及 立即执行函数中的使用 以及 for循环中的例子的更多相关文章
- 直观理解js自执行函数
要在函数体后面加括号就能立即调用,则这个函数必须是函数表达式,不能是函数声明: Jslint推荐的写法: (function(){alert(1);}()); 针对函数声明,使用().!.+.-.=. ...
- 深入理解js立即执行函数
看过jQuery源码的人应该知道,jQuery开篇用的就是立即执行函数.立即执行函数常用于第三方库,好处在于隔离作用域,任何一个第三方库都会存在大量的变量和函数,为了避免变量污染(命名冲突),开发者们 ...
- 理解javascript中的立即执行函数(function(){})()
之前看了好多代码,都有用到这种函数的写法,但是都没认真的去想为什么会这样写,今天开始想学习下jquery的源码,发现jquery也是使用这种方式,用(function(window, undefine ...
- 深入理解JS:执行上下文中的this(二)
目录 序言 Function.prototype.bind() 方法 箭头函数 参考 1.序言 在 深入理解JS:执行上下文中的this(一) 中,我们主要深入分析全局环境和函数环境中函数调用的 th ...
- for循环中嵌套setTimeout,执行顺序和结果该如何理解?
这两天在捣鼓作用域的问题,有的时候知识这个东西真的有点像是牵一发而动全身的感觉.在理解作用域的时候,又看到了一道经典的面试题和例子题. 那就是在for循环中嵌套setTimeout延时,想想之前面试的 ...
- javascript中var let const三种变量声明方式
javascript中var let const三种变量声明方式 1.var ①var表示声明了一个变量,并且可以同时初始化该变量. ②使用var语句声明的变量的作用域是当前执行位置的上下文:一个函 ...
- 关于var和ES6中的let,const的理解
var的作用就不多说了,下面说说var的缺点: 1.var可以重复声明 var a = 1; var a = 5; console.log(a); //5 不会报错 在像这些这些严谨的语言来说,一般是 ...
- let、var、const声明的区别
前言 看了方应杭老师的一篇解释let的文章,对JavaScript中的声明有了深刻的理解,这里也就有了总结一下JavaScript中各种声明之间区别的这篇文章. JavaScript中变量声明机制 首 ...
- javascript精雕细琢(一):var let const function声明的区别
目录 引言 一.var 二.let 三.const 四.function 五.总结 引言 在学习javascript的过程中,变量是无时无刻不在使用的.那么相对应的,变量声明方法也如是. ...
随机推荐
- 新建的maven项目里没有src
百度上搜到一个网友的一句话:没筷子你就不吃饭了是吧 若有所思 自己新建一个src文件 然后, 由于已经转换,因此上图没有sources选项 然后就可以在文件中随意编写文件 如果想添加package,直 ...
- 深度优先搜索(Depth First Search)
Date:2019-07-01 15:31:11 通俗点理解就是不撞南墙不回头的那种,用栈来实现 算法实现 /* 题目描述: 有n件物品,每件物品的重量为w[i],价值为c[i].现在需要选出若干件物 ...
- 剑指offer——30包含min函数的栈
题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). 题解: 借助辅助栈,新的数据<=f辅助栈顶时,就压入辅助栈,这样,就能保证辅 ...
- css中的zoom的作用
1.检查页面的标签是否闭合不要小看这条,也许折腾了你两天都没有解决的 CSS BUG 问题, 却仅仅源于这里.毕竟页面的模板一般都是由开发来嵌套的,而 他们很容易犯此类问题.快捷提示:可以用 Drea ...
- java中的反射机制和javaBean
反射 反射:就是通过一个类加载进方法区时加载到栈内存中的Class字节码文件对这个类进行解剖 通过反射可以获取到一个类的构造方法,成员方法,成员变量 反射将一个类的各个部分映射成相应的类 反射获取构造 ...
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...
- Codeforces Round #525 E - Ehab and a component choosing problem
题目大意: 在一棵树中 选出k个联通块 使得 这k个联通块的点权总和 / k 最大 并且这k个联通块不相互覆盖(即一个点只能属于一个联通块) 如果有多种方案,找到k最大的那种 给定n 有n个点 给定n ...
- 论文阅读笔记---ShuffleNet V1
01 ShuffleNet V1要解决什么问题 为算力有限的嵌入式场景下专门设计一个高效的神经网络架构. 02 亮点 使用了两个新的操作:pointwise group convolution和cha ...
- JDBC_数据库连接池工具类
//定义一个类JDBCUtils public class JDBCUtils { //1.定义成员方法 private static DataSource ds; //2.提供静态代码块 stati ...
- springmvc常用知识总结,不定期更新
1.@Controller 注解到类名上,表示该类是控制器. 2.@RequestMapping("/xxxx") 可以放在类名/方法名之上,表示访问请求该方法时的映射url.如果 ...