ES6深入浅出-1 新版变量声明:let 和 const-3.视频 相关面试题
执行顺序问题
请问console.log输出的值是多少

输出的肯定是1

假如这里有一行未知的代码 会打印出几?

如果这段未知的代码是a=2。那么其实console输出的就是2

只关心代码,没有关心代码执行的顺序,这就是这条面试题最大的陷阱。
最终输出的是

语法问题
i虽然是写在for循环里面,但是它依然是往外跑的

i等于5的时候要执行i++然后进入不到循环里面了。所以当等于6的时候循环内就不成立, 就执行最下面的console的输出



如果这行代码是用户点击的时候去执行的话。那么这行代码就是 最终的6.


按钮点击多次 输出的结果都是6

http://js.jirengu.com/?html,output

光标上面那行代码的最后,一回车,就生成了如下的代码

当点击导航3的时候输出的值是几???


执行代码。页面默认加载完成,i就已经是6了

怎么让点击导航1就打印出1 点击导航2就打印出2呢????
打印出来一直是6,是因为我们的只有一个i

用变量j来接受变量i

打印出来了5,

为什么是5呢。i虽然一直++一直加到了6,但是j并没有一直++。所以i到6 就不会进入循环了。 j的值一直最高就是5了。
因为j这个傻逼变量会提升。j会提升到这里。

始终用同一个j去接收同一个i,也就是这个事件里面只有一个i和j
默认输出i和j的值

let
用let,这个j就不会跑到外面去了。

let的作用域只有选中的一块区域

循环点击输出的结果

如果不用let,就要搞出一个新的作用域
新的作用域一般是用立即执行函数。这个j的函数就是在这个函数里面。不会出去的

现在的这个j就是每个循环一个j

这就是js程序员在es6的语法之前是多么的痛苦。

也可以这么写,意思是j就是第一个参数

如果把i用let来修饰

i的作用域就在选中的这块代码。所以花括号内是访问不到i的

for循环的语法做了一个魔法,每次进入循环的时候。在循环内创建一个i,这个i等于外面的i的值。

我们把外面的i改成下划线的i,这样好区分

这一行代码是js自动加的 我们看不见。



一共7个i,圆括号内一个i贯穿了循环的始终

以及每次循环,都会产生的块作用域的i,0到5 所以里面是6个i,加上最外面的i 就是7个i

结束
ES6深入浅出-1 新版变量声明:let 和 const-3.视频 相关面试题的更多相关文章
- ES6深入浅出-1 新版变量声明:let 和 const-2.视频 let和const
以前的var方式声明不好用 a=1回声明一个全局变量, 输出了1 说明a=1确实声明了一个全局变量. 但是你把放在其他的地方,就不是声明全局变量了. 如果外面有个全局变量a 那么函数里面就是给a赋值 ...
- ES6深入浅出-1 新版变量声明:let 和 const-1.视频 概述
es7语法比较少,只占了一点点 ES 6 新特性一览:https://frankfang.github.io/es-6-tutorials/ 我用了两个月的时间才理解 let https://zh ...
- es6 快速入门 系列 —— 变量声明:let和const
其他章节请看: es6 快速入门 系列 变量声明:let和const 试图解决的问题 经典的 var 声明让人迷惑 function demo1(v){ if(v){ var color='red' ...
- 石川es6课程---3、变量let和常量const
石川es6课程---3.变量let和常量const 一.总结 一句话总结: let非常好用,尤其是let的块级作用域可以解决之前要(function(){})()立刻执行函数做的块级作用域 1.js中 ...
- ES6学习笔记之变量声明let,const
最近用淘宝的weex做了个项目,最近稍微闲下来了.正好很久没有接触RN了,所以趁这个机会系统的学习一下ES6的相关知识. 孔子说:没有对比就没有伤害.所以我们要拿ES6和ES5好好对比的学习.这样才能 ...
- ES6 (一)变量声明方法 & 解构赋值
就是最新的JavaScript 原来的是var,要求不严格,不能限制修改,函数级 es6要求严格 1.防止重复声明 let 变量=var const 常量 2.控制修改 const常量不能修 ...
- ES6深入浅出-5 新版对象-2.属性修饰符
对象语法增强 已经有了个对象的新增语法 还需要一个api来做呢?. 因为有的时候,你需要在旧的对象上添加get.set. 读的时候就走get 写的时候就走set 假设很早之前在项目里写了一个old对象 ...
- ES6深入浅出-5 新版对象-1.如何创建对象
对象属性的加强: 可以通过new Object(), Object.create()方法,或者使用字面量标记(初始化标记)初始化对象. 一个对象初始化器,由花括号/大括号 ({}) 包含的一个由零个或 ...
- ES6深入浅出-2 新版函数:箭头函数 2 视频-1.视频 箭头函数
ES3里面的写法 匿名函数是用不了的 还是需要给他赋值 选中的这一部分叫做匿名函数 等于号叫做赋值 let xxx叫做声明 所以说这个地方是三个语法,首先声明一个匿名函数,然后声明一个xxx变量,最后 ...
随机推荐
- 河南省acm第九届省赛--《表达式求值》--栈和后缀表达式的变形--手速题
表达式求值 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 假设表达式定义为:1. 一个十进制的正整数 X 是一个表达式.2. 如果 X 和 Y 是 表达式,则 X+Y, ...
- 实践论:github搜索源码内容
github搜索源码内容 github搜索源码内容 github搜索源码内容
- 《TheOne团队》团队作业三:团队项目原型设计与开发
项目 内容 作业所属课程 http://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/10761596.h ...
- 【Java】Javadoc的使用
一.名词解释 javadoc是从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同 ...
- 洛谷P2396 yyy loves Maths VII【状压dp】
题目:https://www.luogu.org/problemnew/show/P2396 题意:有n个数,每次选择一个表示走$a[i]$步,每个数只能选一次. 最多有两个厄运数字,如果走到了厄运数 ...
- 树状数组例题-数星星,简单题easy,校门外的树2,清点人数
[例1]数星星 天空中有一些星星,这些星星都在不同的位置,每个星星都有个坐标,如果一个星星的左下方(包括正左和正下)有k颗星星,就说这颗星星是k级的. 比如,上图中,星星5是3级的(1,2,4在其左下 ...
- Postgresql pg_dump 与 pg_restore 使用举例
pg_dump备份 备份本地osdb数据库,全备份,不需要密码 pg_dump osdb > osdb.sql 备份远程osdb数据库 pg_dump -h 192.168.122.1 -Uos ...
- Linux操作系统常用命令合集——第一篇-文件和目录操作(40个命令)
一.选项和参数的区别 在经过上一次的系统安装后我们已经成功登陆,登陆LInux后,我们就可以在#或$符后面去输入命令,有的时候命令后面还会跟着“选项”(英文名:options)或“参数” ...
- PHP安装与配置
一.官网下载 进入PHP下载地址http://windows.php.net/download下载最新线程安全版(Thread Safe)PHP zip压缩包,解压缩后放在想要安装的路径下.我这里下载 ...
- 关于 requestAnimationFrame 小结
一.小谈 requestAnimationFrame: 说起 requestAnimationFrame,我们先看幅图: 相当一部分的浏览器的显示频率是16.7ms, 就是上图第一行的节奏,表现就是“ ...