腾讯js面试题2
来源:互联网 发布:去马赛克的软件 编辑:程序博客网 时间:2024/05/23 19:12
本题难度系数: ★★★
求结果是多少?
然后再说下,一般不推荐在if里声明变量,为了养成后端相关语言的习惯,每个语句尽量加分号。因为这是一道面试题,所以才这样写,为了增加迷惑性,考查大家的分析能力。
考查技术点: 1). 变量提升 2). IIFE 3). 作用域与作用域链 4). 变量查找
var name = 'World!' ;(function () { if (typeof name === 'undefined') { var name = 'Jack' console.log(name) } else { console.log(name) } })()
求结果是多少?
运行得知:
接下来我们分析下,首先我们先来了解下,什么是IIFE,其实就是立即调用函数表达式,这4个字母分别为四个单词的首字母缩写(Immediately Invoked Function Expression)),就是让函数立即执行了。
当程序运行到函数时,会先执行变量提升步骤,也就是说把var name执行在if前面了,然后再执行if……else语句,所以if里面的条件就成立了,因为变量name被提升了,但并为赋值,所以当然他的typeof是undefined了啊。
此时等价于下面语句:
var name = 'World!' ;(function () { var name; if (typeof name === 'undefined') { name = 'Jack' console.log(name) } else { console.log(name) } })()
然后再说下,一般不推荐在if里声明变量,为了养成后端相关语言的习惯,每个语句尽量加分号。因为这是一道面试题,所以才这样写,为了增加迷惑性,考查大家的分析能力。
阅读全文
0 0
- 腾讯js面试题2
- 腾讯js面试题1
- 腾讯js面试题3
- 腾讯面试题2
- 腾讯的JS前端面试题
- 腾讯后台开发面试题--整理2
- 腾讯面试题
- 腾讯笔试面试题
- 腾讯面试题
- 腾讯面试题
- 腾讯经典面试题
- 腾讯面试题
- 腾讯面试题
- 腾讯面试题PHP
- 腾讯PHP面试题
- 腾讯面试题解答
- 腾讯 百度 面试题
- 腾讯iphone面试题
- 278. First Bad Version
- leetcode#98. Validate Binary Search Tree
- Java集合HashMap的源码解刨
- 设计模式之策略模式(STRATEGY)
- 数据结构之顺序队列和链式队列常用的一些操作
- 腾讯js面试题2
- 结构化数据上的机器学习大杀器XGBoost
- 百练 8462:大盗阿福
- c++容易混淆的概念
- 英语发音困难点记录
- nginx安装lua和echo模块
- 微信小程序之自定义toast实例 —— 微信小程序实战系列(6)
- java作业调度框架Quartz
- aop编程