我在前一篇讨论let与var区别的博客中,顺带一笔带过了let与var在for循环中的不同表现,虽然解释了是块级作用域的影响,但具体是怎么去影响的呢,我尝试的去理解了下,这篇博客主要从for循环步骤拆分的角度去理解两者的区别.  一.一个简单的for循环问题与我思考后产生的问题 还是这段代码,分别用var与let去声明变量,得到的却是完全不同的结果,为什么?如果让你把这个东西清晰的讲给别人听,怎么去描述呢? //使用var声明,得到3个3 var a = []; for (var i = 0;…
JS:客户端(浏览器)脚本语言 弱类型 基于原型 事件驱动 不需要编译(直接运行)   JS的作用:表单验证,减轻服务端的压力 添加页面动画效果  动态更改页面内容  Ajax网络请求 (一)常见的对话框              alert()对话框:该方法是window对象的方法,在浏览器中弹出一个对话框(该方法没有返回值)  prompt()对话框:2个参数,一个是浏览器提示信息,第二个是默认的输入框的值,返回值就是输入框的信息  confirm()对话框:在浏览器弹出一个对话框,用户只能…
let和var区别: for(var i=0;i<5;i++){ setTimeout(()=>{ console.log(i);//5个5 },100) } console.log(i); console.log('=============') for(let j=0;j<5;j++){ setTimeout(()=>{ console.log(j);//0,1,2,3,4 },100) } console.log(j);//报错 j is not defined;…
先看下面两段代码 for (let i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 2000) } for (var i = 0; i < 5; i++) { setTimeout(function () { console.log(i) }, 2000) } 一个是输出0 1 2 3 4一个是输出5个5 为什么let的i,在setTimeout里的匿名函数,i取的还是块级作用域里的i? 一个假设是let的循环中,…
碰到一道题: for(var i=0;i<2;i++){ setTimeout(function(){ console.log(i); },100) } //输出结果为:2 2 for(let i=0;i<2;i++){ setTimeout(function(){ console.log(i); },100) } //输出结果为:0 1 我们先从第一个for循环说起,setTImeout是异步执行的 因此setTImeout在异步队列中,需要等待同步队列(for循环)执行完成后才可进行, 此…
在前面我们已经讲解了 JavaScript 中变量提升的相关内容,正是由于 JavaScript 存在变量提升这种特性,从而导致了很多与直觉不符的代码,这也是 JavaScript 的一个重要设计缺陷. 虽然 ECMAScript6(以下简称 ES6)已经通过引入块级作用域并配合 let.const 关键字,来避开了这种设计缺陷,但是由于 JavaScript 需要保持向下兼容,所以变量提升在相当长一段时间内还会继续存在.这也加大了你理解概念的难度,因为既要理解新的机制,又要理解变量提升这套机制…
除了满足while条件外,还有两种方法可以终止循环,它们分别是break和continue.它们唯一的区别是break跳出整个循环,直接执行下面的代码了;而continue是终止当次循环,不执行下面的代码,而是直接进入下一次循环,continue和pass的区别是,pass虽然什么都不做, 但是还继续执行下面的代码.下面用代码说明break和continue的区别 break: count = 0 while count <= 100: print('loop', count) if count…
2014年4月21日,14:49分: 原创:http://www.cnblogs.com/liujinyu/p/3678523.html 今天写天气网英文版的产品频道,maps页面的js时,偶然意识到一个平常老是用却没有测试的问题,就是在函数内部定义变量加var和不加var的区别,这个区别利用的好,还是很有价值的. 废话不多说上代码:     var liu= 0;     function show(){         liu = 1;  //在定义名称的函数内 没加var的已定义全局变量l…
1.for循环 for循环是更加简洁的循环语句,大部分情况下,for循环可以代替while循环.do-while循环. for循环的格式为: for( 初始语句 ; 执行条件 ; 增量 ){循环体}执行顺序:1.初始语句 2.执行条件是否符合? 3.循环体 4.增加增量 初始化语句只在循环开始前执行一次,每次执行循环体时要先判断是否符合条件,如果循环条件还会true,则执行循环体,在执行迭代语句.所以对于for循环,循环条件总比循环体多执行一次.注意:for循环的循环体和迭代语句不在一起(whi…
continue是指跳出本次循环 进入下次循环 再来一次 break是指循环结束 再也不来了 可以用一个广告来解释这个区别 这是continue 房:Hi 郭:是你啊 房:我订的书到了吗 房:啊!对了,给你的 郭:谢谢!还没到 房:那,这不是··· 郭:我说了还没到 房:那···你觉得我还要等多久呢 郭:你很急啊 房:啊,不会不会 郭:那你可以去别家找找 房:我可以等的 郭:明天再来试试吧 这是break 房:Hi 郭:滚…