提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


文章目录

  • 如何理解js是解释性语言
  • 1.逐行翻译
  • 2.由上往下翻译
  • 3.不只是原生js,框架js也遵循
  • 总结



如何理解js是解释性语言

javascript是一种具有函数优先的轻量级,解释型或即时编译型的脚本语言;使用JavaScript编写的代码不需要编译,可以直接运行,浏览器会直接解释源代码,并执行在内存中创建变量等操作。
计算机并不明白编程语言,必须经过翻译。
js就是翻译一句,计算机执行一句的语言,就像两个人交流,中间有个翻译官,必须说一句翻译一句,其中一人说话出现错误,翻译官停止翻译,对话终止。
另一种编译型语言则更像翻译名著,全文通读,然后全文翻译,通读的时候发现错误,直接一句都不翻译,计算机默认这些代码质量不及格,一行都不执行。


1.逐行翻译

每一行代码,浏览器都要进行一次判断,这行代码的语句是否正确,如果不正确,出现语法错误或者其他的类型错误,就会报错,代码不再运行


2.由上往下翻译

这种情况可能出现在查看代码时,发现某处变量undefined之类的问题,所以拥有声明提升的var尽量少用,会影响由上往下翻译的判断


3.不只是原生js,框架js也遵循

目前遇到过的是vue中vue实例的问题,比如main.js中,注册和使用的顺序错误,并且报错的情况会与其他类型报错相似导致难以判断具体的错误情况。
也可能出现在比如生命周期中,数据未挂载就使用数据,dom未渲染就使用dom,都会因为代码的翻译顺序导致报错


总结

有时候写的代码语法没问题,然而报错的时候发现报错的是其他的类型问题,这时候可以考虑一下是否是在错误的位置写的代码。