前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JS基础测试: a();function a(){console.log(1)}function a(){..}输出是多少?​

JS基础测试: a();function a(){console.log(1)}function a(){..}输出是多少?​

作者头像
舒克
发布2019-08-09 14:55:18
3.2K0
发布2019-08-09 14:55:18
举报
文章被收录于专栏:迈向前端工程师

考核内容: javascript 对代码进行预处理

题发散度: ★★★

试题难度: ★★★

解题思路:

在一个JavaScript文件或一个JavaScript代码块的内部,浏览器会先对代码进行预处理(编译),然后再执行。

1. 预处理会跳过执行语句,只处理声明语句,同样也是按从上到下按顺序进行的。包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理。

注意1:对于声明并赋值的语句,例如 var a = 1,在预处理阶段会把这句话拆成两句:

代码语言:javascript
复制
var a;
a = 1;

也就是说,赋值或其他逻辑运算是在执行阶段进行的,在预处理阶段会被忽略。

注意2:

(1)函数声明的提升优先于变量声明的提升;

(2)重复的var声明会被忽略掉,但是重复的function声明会覆盖掉前面的声明。

2.在预处理阶段,声明的变量的初始值是undefined, 采用function声明的函数的初始内容就是函数体的内容。

3. 完成预处理之后,JavaScript代码会从上到下按顺序执行逻辑操作和函数的调用。

参考代码:

答案

代码语言:javascript
复制
  C. 2
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 迈向前端工程师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档