研究 JavaScript

  1. 以前对JavaScript的认识
  2. 开始学习JavaScript的底层原理
  3. 感受潜心研究的快乐和收获

以前对JavaScript的认识

  • 一个有C++实现的解释型语言而已

由于学习(了解)过编译原理的知识,所以对一门编程语言的实现思路大致的认识。但是,对于编程语言的编译器实现的细节,还是一窍不通的。javaScript就是一个典型的例子。由于一直没去钻研底层实现原理,因此在写一些javaScript程序的时候,总是觉得怪怪的,而且对这一类的解释型语言都是一样的迷迷糊糊。

开始学习JavaScript的底层原理

  • 学习书籍《你不知道的javaScript》上中下三册的翻译版本。

学习的上册的第一部分——作用域和闭包。之后,对TypeError有了更深层次的认识(对变量的非法操作)。在阅读这一部分之前,我也思考了:如果是我设计JavaScript我会怎么去解决变量的作用域问题???毕竟是边编译边执行。带着问题,我津津有味的阅读了第一部分。

发现:

  • 编程语言的编译和执行过程需要回顾复习一下。
  • JavaScript存在独立的作用域模块,从嵌套的作用域中从内到外或者从底层到顶层查找变量。
  • JavaScript的函数是可以作为变量进行操作的。
  • JavaScript的作用域的本质原理其实是闭包原理。
  • javaScript可以使用eval()或者with来改变变量的作用域。
    • eval()通过插入动态的JS代码,来改变变量的作用域。
    • with是通过对已有的对象进行进一步处理,来改变对象的作用域,同时带来编码的方便。
    • eval() 和 with 都是不建议使用的。
  • JavaScript目前在ES6下,有const, var, let三个关键词来声明变量,分别表示常量,全局变量,局部变量。
  • JavaScript的全局作用域是用来暴露对外的API的,所以不能什么变量都设为全局作用域。
  • JavaScript其实也有对象和原型的概念,在第二部分会进一步学习研究。

感受潜心研究的快乐和收获

学习,是一个人的路,去思考问题,理清解决思路,实践方案。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1056615746@qq.com

💰

Title:研究 JavaScript

Count:570

Author:攀登

Created At:2020-01-28, 15:40:40

Updated At:2024-06-15, 15:52:32

Url:http://jiafeimao-gjf.github.io/2020/01/28/JavaScript-research-JavaScript/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation