JavaScript是怎么一回事儿?
1. 银行办理业务类比JavaScript执行代码
回想一下我们在生活中是怎么办理银行业务的:
- 我去到银行,准备在叫号机上取号,这时我发现叫号机上有“个人业务”、“对公业务”可供选择。因为这次是为自己开户,所以我选择了“个人业务”。顺利拿到号,正准备静静等候......
- 这时大堂经理过来询问我要办理什么业务,在得知我要开户后,大堂经理让我填写开户申请表,并准备好身份证复印件等材料
- 复印身份证?糟了!我来之前不知道所以并没有复印。这时大堂经理告诉我说不要紧,银行大堂就提供复印服务,免费!😄太好了!顺利复印好身份证,准备好所有开户所需要的材料。静静等候叫号......
- 终于到我了。快速走到窗口,告诉柜员我要开户并递上了所有准备好的材料。柜员顺利地帮我开通了账户,并交给我一张银行卡。嗯,开户到这里就办完啦!效率还算不错,等待时就准备好了所需材料,减少了很多在窗口等待的时间。
- 正准备离开银行,突然发现大堂的另一侧有保险相关的柜台。我想了想觉得保险这个东西最好还是买一份,于是我走向了保险柜台去办理保险业务。办理过程中得知这家保险公司支持用我刚办理的银行卡付钱,这真是太方便了,于是顺利购买了一份保险。
以上就是我们去银行办理个人业务时会发生的场景,当我们办理的不是个人业务而是别的业务时,有些具体的服务内容和业务内容会发生变化,但是办理流程基本不会变。
这跟JavaScript有什么关系呢?JavaScript玩儿起来就是这样的啊!
- 你要用JavaScript做事情了(你去到银行准备办业务了)
- 你要实现前端功能,JavaScript启动浏览器运行环境(你要办理个人业务,银行走的是个人业务流程);你要实现后端功能,JavaScript启动Node运行环境(你要办理对公业务,银行走的是对公业务流程)
- 不论要实现什么功能(不论什么种类的业务),你都需要做一些准备工作(大堂经理预先让你准备好所需材料),准备过程中需要用到一些JavaScript的内置库提供的服务(银行提供的打印服务)
- 写好了代码,不论前端还是后端,都送到各自运行环境里的V8引擎去执行(银行办业务的窗口),V8引擎里的解释器一边解释一边执行代码(窗口的柜员一边看材料,一边进行一步步操作,比如输入新开的账户的户名等),V8引擎执行完毕,输出结果(窗口的柜员办理业务完毕,交给你属于你的银行卡)
- 我要增加一个功能,JavaScript的内置库没有提供这个服务(我要买一份保险,可是银行不卖保险),于是我调用了第三方库,第三方库提供这个服务(于是我去了保险公司,他们卖保险)
这样一类比,JavaScript怎么玩儿的是不是就相当清楚明了了呢?😄,我自己是觉得很清晰了的。当然,还需要在后续过程中不断去通过实践来不断加深理解。
2. 我的JavaScript学习方向
理解了JavaScript的玩儿法,我接下来的得明确自己在JavaScript这条路上的玩儿法了。
首先,作为一只小白,我该怎么学JavaScript呢?
要掌握一门编程语言,就是要能够用编程的方式调用各种服务来完成我的需求
其次,我该怎么提高呢?
要了解和掌握重要的服务能力,让它能够服务我的业务需求,即要熟悉内置库和第三方库
之后,我该怎么进阶呢?
要做到善于比较服务/技术之间的差异性,用最好的方式去实现我的业务
学习JavaScript的难点是什么呢?
- 变化快:应对这一点,作为新手的我应该聚焦ES6,对于ES7、ES8等稍微关注下就好
- 无边际:这一点只能在后续学习和使用中去慢慢体会、摸索了
最后,想引用屈原的一句话来说明一下我当下的心情,并与同学们共勉!
路漫漫其修远兮,吾将上下而求索