最近在github上大火的43到js代码题,有很多人搬运。
原链接https://github.com/lydiahallie/javascript-questions

1.下面代码的输出是什么?

function sayHi() {console.log(name);console.log(age);var name = "Lydia";let age = 21;
}sayHi();

A: Lydia 和 undefined
B: Lydia 和 ReferenceError
C: ReferenceError 和 21
D: undefined 和 ReferenceError

使用let关键字(和const)声明的变量也会存在变量提升,但与var不同,初始化没有被提升。 在我们声明(初始化)它们之前,它们是不可访问的。 这被称为“暂时死区”。 当我们在声明变量之前尝试访问变量时,JavaScript会抛出一个ReferenceError。变量的赋值可以分为三个阶段:

1.创建变量,在内存中开辟空间

2.初始化变量,将变量初始化为undefined

3.真正赋值

2.下面代码的输出是什么?

for (var i = 0; i < 3; i++) {setTimeout(() => console.log(i), 1);
}for (let i = 0; i < 3; i++) {setTimeout(() => console.log(i), 1);
}

  

A: 0 1 2 and 0 1 2
B: 0 1 2 and 3 3 3
C: 3 3 3 and 0 1 2

由于JavaScript中的事件执行机制,setTimeout函数真正被执行时,循环已经走完。 由于第一个循环中的变量i是使用var关键字声明的,因此该值是全局的。 在循环期间,我们每次使用一元运算符++都会将i的值增加1。 因此在第一个例子中,当调用setTimeout函数时,i已经被赋值为3。

作者:ConardLi
链接:https://juejin.im/post/5d0644976fb9a07ed064b0ca
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

 

转载于:https://www.cnblogs.com/JiAyInNnNn/p/11049564.html

关于JavaScript的43道题①相关推荐

  1. android + javascript 相互通信实例分析

    1.  AndroidManifest.xml中必须使用许可 "android.permission.INTERNET", 否则会出Web page not available错误 ...

  2. (转)无需安装SDK,3部完成Android客户端开发(附源码)

    一.下载示例文件 下载地址:http://www.eduan.mobi/sdk/sample.zip 二.修改文件 1.做一个Logo 2.做一个启动画面 3.在示例上调整界面 三.上传编译 提交,等 ...

  3. LeetCode - 929 - 独特的电子邮件地址(unique-email-addresses)

    一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题及测试 四 LeetCode Submit 五 解题思路 六 进一步思考 二 前言 难度:简单 涉及知识:字符串 题目地址: ...

  4. 专业ajax解决方案汇集

    Smashing Magazine给出了85个专业ajax解决方案,它们几乎涵盖了所有的ajax使用场景,而且个个都带图,选你喜欢的,然后下载示例代码就是了! AJAX Auto Completer ...

  5. LeetCode 396. 旋转函数(Rotate Function)

    题目描述: 给定一个长度为 n 的整数数组 A . 假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的"旋转函数" F 为: F(k) = 0 * Bk[0] ...

  6. 这可能最全的操作系统面试题

    文章目录 操作系统简介篇 解释一下什么是操作系统 操作系统的主要功能 软件访问硬件的几种方式 解释一下操作系统的主要目的是什么 操作系统的种类有哪些 为什么 Linux 系统下的应用程序不能直接在 W ...

  7. 008. 字符串转换整数 (atoi) | Leetcode题解

    点击上方"蓝色字体",选择"设为星标" 每天复习一道面试题,轻松拿大厂Offer~ 题目描述: 请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先 ...

  8. DOM常用属性【DOM】

    DOM属性: DOM 属性是节点(HTML 元素)的值,您能够获取或设置. 文档里的每个节点都有以下3个属性: nodeName,  nodeType, nodeValue.更有一些常用属性:inne ...

  9. JQuery的45个经典插件应用

    jQuery滑动门 1) Slider Gallery- 这是一个模仿Apple网站的jQuery滑动门产品展示. 这个'产品展示滑动门'就是一个直线前进的画廊,在有限的空间里面显示产品图片,支持Ta ...

最新文章

  1. 如何看待亚马逊 AI 李沐团队大批人员离职?
  2. 【活动推荐】北京泛娱乐行业技术沙龙——新技术助力内容产业破局之道
  3. JList的基本操作
  4. jpa mysql脚本迁移_JPA通过LOAD DATA LOCAL INFILE大批量导入数据到MySQL
  5. redis内存淘汰和持久化_REDIS的淘汰机制与持久化
  6. Centos7快速安装gcc8.3.1
  7. 2月份13个jQuery最佳插件推荐
  8. 测试驱动开发全功略(转)
  9. android xml设置roboto字体,Android设置Roboto字体用粗体,斜体,常规,…(类似于自定义字体系列)...
  10. 【模板一】计算机XXXX系统-毕业设计
  11. 计算机网络实验水晶头,计算机网络实验报告制作网线
  12. c#Word模板转PDF,c#word模板生成新的word
  13. Linux虚拟机设置全屏
  14. 用户名xxx不在sudoers文件中,此事将被报告
  15. 【Knowledge Graph】C3KG: A Chinese Commonsense Conversation Knowledge Graph
  16. element-plus的el-date-picker中value-format属性失效以及只选择到时分值
  17. 小侃设计模式(八)-装饰者模式
  18. 蓝宝石rx580怎么超频_超频测试:提升8%
  19. IDEA 导入maven项目后导(下载)包失败的问题
  20. 强行删除文件的方法(是因权限不够,并非解除占用)

热门文章

  1. linux多媒体功能,Ubuntu 8.04中文强化版 多媒体功能更强大
  2. python安装jupyterlab_JupyterLab的安装及使用
  3. 计算机网络技术实验,计算机网络技术实验一
  4. linux 系统对信号的处理,Linux下的信号处理函数总结
  5. 腐蚀rust电脑分辨率调多少_腐蚀Rust画面怎么设置 _游侠网
  6. Apache ActiveMQ
  7. ios 添加导航栏视图_iOS进度栏(进度视图)
  8. Java属性文件– java.util.Properties
  9. 如何在C / C ++中使用continue语句
  10. LeetCode之3Sum Closest(Kotlin)