美文网首页
前端学习小结(1)

前端学习小结(1)

作者: d4aeacc4f4b6 | 来源:发表于2017-11-17 23:55 被阅读0次

        作为一个大四将要毕业的学生,最近一直忙于各种面试题的总结,看到了一条比较有趣的面试题想和大家分享一下个人的心得,如果有什么不正确的地方,还麻烦大家指出哈

图一

这道题很经典也很简单,但是也很坑。怎么说呢?一些前端初学者刚入门的时候看到这种题,立刻就会想着,哎呀,JS是向下执行的,所以控制台依次输出1,1。

        其实呢,并不是的。控制台会依次输出undefined,2。

图二

        为什么呢?首先我们可以看到变量b是一个全局的变量,之后定义了一个匿名函数c,在函数c中会有个if条件,如果变量b不存在时,则重新定义一个局部变量b。但是我们不要忘记在javascript中是没有块级作用域的,而且变量会提升到当前作用域的顶部(这个其实也是为什么我们要在作用域的开始去定义变量,就是为了防止变量提升),所以if语句中的var b;会被提升到函数f作用域的前面,也就是上面的例子和下面的例子是等同的

图三

        这时候,我们就可以很轻而易举的知道答案了。在函数c中,首先定义了个变量b,但是没有赋值(在函数内部,查找变量b的时候,如果能在内部作用域中找到的话,则返回,不能的话,则继续向外查找),所以控制台第一个输出的值是undefined,第二个的值是2。

        第一次发表自己的学习心得,如果有什么不正确的地方望指出,咱学习学习!

相关文章

  • 前端学习小结(1)

    作为一个大四将要毕业的学生,最近一直忙于各种面试题的总结,看到了一条比较有趣的面试题想和大家分享一下个人的心得,如...

  • Android webview-tips

    webview优化 Android学习之 WebView使用小结 Android 各个版本WebView 移动前端...

  • 前端学习路径小结

    其实想写这样一篇关于前端学习历程的文章已经好久了,之前自己也有做一些总结和笔记之类的,但是一直都没有公开发布,下面...

  • 2019-07-17 半年小结

    小结:1.走起了前后端分离的路,前端iview ,小程序 后端springboot说是前后端分离,但是前端人员稀少...

  • 前端跨域学习小结

    一、什么是跨域 跨域,指的是浏览器不能执行其他网站的脚本,通过js在不同的域之间进行数据传输或通信。它是由浏览器的...

  • 学习小结1

    萧秋水李笑来本质上是对方法论的提炼概括,如果你不是在行动路上的人,你体会不出其价值所在,看目录感觉像鸡汤,反而走过...

  • Web前端

    Web前端 web前端是什么- 定义 职责 web前端基础知识和学习路线 web前端学习的资源 1.Web前端是...

  • 前端学习1

    1.HTML是什么,HTML5是什么? HTML是用来描述网页的一种语言。 HTML指的是超文本标记语言(Hype...

  • 前端小结

    昨天与后台沟通,在请求拦截那一块,处理很长时间才解决的,需求是当前端向服务器发送请求,去判断当前的状态,如果判断未...

  • 个人对组内前端工作小结

    组里前端工作小结 自从小组的前端负责人离职后,自己就承担了小组前端的任务。包括前端基础技术的选型,工程环境搭建,了...

网友评论

      本文标题:前端学习小结(1)

      本文链接:https://www.haomeiwen.com/subject/hmmsvxtx.html