(大厂面试题)使用第一性原理推导---JS中代码是怎么运行的

本文从第一性原理出发,探讨JS中代码的运行机制,包括声明提升、作用域和执行上下文。解释了变量声明提升、函数声明提升的顺序,以及全局和局部变量的作用域规则。此外,还详细阐述了执行上下文的概念,强调其在函数调用栈中的重要性。
摘要由CSDN通过智能技术生成

(大厂面试题)使用第一性原理推导—JS中代码是怎么运行的

前言

自从接触“第一性原理”,这个词在网上被吹得神乎其神。可是它到底是什么?我还没认真考究过。直到今天,通过浏览各位大佬的博文,对第一性原理有了点自己的理解。今天就和大家分享以下两点:

  1. 我对“第一性原理”的理解
  2. 从第一性原理的角度聊一聊JS中代码是怎么运行的

什么是第一性原理

当我看到下面马斯克这段话的完整译文,才终于把握到了“第一性原理”的实质,这令人膜拜的“第一性原理”,不就是“解耦合(decoupling)”吗?

捕获.PNG

  • 要搞清楚这个概念,我们不妨试想,我们作为开发人员,希望改进一款开源软件产品的功能,你会怎么做?

    你会打开一个新的空白源代码文件,从头开始,一行行的写代码吗?
    基本上不会。那你会怎么做呢?
    你会读现有软件的源代码,把新的功能实现补充或更新到对应的位置,提交合并请求
    在这个过程中,我们都是把前人做的东西作为基础层,而后再在这个层次上,去叠加新的内容。


  • 如果大家还没有理解,我们不妨再思考一个问题:为什么现在数据科学这么火热?Python、R和机器学习框架为何这么受到欢迎?甚至让很多非IT人士也在乐此不疲地渴望学习、应用它们?

    因为有许许多多的开发者,已经为你写好了实现数据科学工作的各项基本功能。相关的软件包已有成千上 万,而且每天还在不停快速涌现。你根本不需要了解哪些功能究竟是如何实现出来的,只要会搜软件、查文档,直接“拿来主义”调用就能实现酷炫繁复的功能,方便得令人发指。


  • 现在,大家再试想一下:如果之前的前提都不成立了呢?假设你目前的工作做所依赖的基础层级存在问题呢?

    这就比如“品牌假货”的存在,大家都痛恨假货,但是原本品牌的存在,就会减低大家识别商品质量的成本。如果一个案例中,两种事物同时出现,总会被我们脑补为必然的关联,于是就耦合在一起了。你不难感受到,耦合的结果是非常不利于创新的。而所谓的“第一性原理”,即是一种“解耦合”的思维方式

如何使用“第一性原理”思考-JS中代码是怎么运行的

  • 由第一性原理,可推出一下结论和问题
  1. 代码一定是逐行运行的
  2. 分为编译阶段执行阶段,先后顺序
  3. 编译阶段发生了什么?
  4. 执行阶段执行了什么?
  5. 代码运行时,变量是如何查找的?
showName()//函数的执行
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值