JavaScript语法(一):在script标签写export为什么会抛错?
winter
该思维导图由 AI 生成,仅供参考
你好,我是 winter,今天我们进入到语法部分的学习。在讲解具体的语法结构之前,这一堂课我首先要给你介绍一下 JavaScript 语法的一些基本规则。
脚本和模块
首先,JavaScript 有两种源文件,一种叫做脚本,一种叫做模块。这个区分是在 ES6 引入了模块机制开始的,在 ES5 和之前的版本中,就只有一种源文件类型(就只有脚本)。
脚本是可以由浏览器或者 node 环境引入执行的,而模块只能由 JavaScript 代码用 import 引入执行。
从概念上,我们可以认为脚本具有主动性的 JavaScript 代码段,是控制宿主完成一定任务的代码;而模块是被动性的 JavaScript 代码段,是等待被调用的库。
我们对标准中的语法产生式做一些对比,不难发现,实际上模块和脚本之间的区别仅仅在于是否包含 import 和 export。
脚本是一种兼容之前的版本的定义,在这个模式下,没有 import 就不需要处理加载“.js”文件问题。
现代浏览器可以支持用 script 标签引入模块或者脚本,如果要引入模块,必须给 script 标签添加 type=“module”。如果引入脚本,则不需要 type。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
JavaScript语法的基本规则包括脚本和模块的区别,以及在使用script标签引入模块或脚本时需要注意的type属性设置。文章详细介绍了import声明和export声明的用法,包括直接import模块、带from的import以及export的不同用法。此外,还介绍了函数体的四种类型,以及JavaScript语法的全局机制:预处理和指令序言。文章还讨论了var声明、function声明和class声明在不同作用域中的行为,以及指令序言机制的使用。总的来说,本文内容涵盖了JavaScript语法的基本概念和一些高级特性,适合读者快速了解JavaScript语法的一些重要知识点。文章通过具体的例子和解释,帮助读者理解JavaScript语法的复杂性和一些设计原则,为读者提供了深入学习JavaScript语法的基础。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《重学前端》,新⼈⾸单¥59
《重学前端》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(39)
- 最新
- 精选
- 洛克不菲勒看了之后好像明白了,但是又好像什么都没学到,是否需要多看几遍?
作者回复: 读完以后可以自己查阅相关资料,补充自己的能力体系。
2019-09-03219 - xwchrisconsole.log(foo); if (true) { function foo() {} } 为什么这段代码 我在chrome73中执行得到的是ƒ foo() {}
作者回复: 老内核和新内核不一样
2019-04-083 - Geek_7e2326闭包那边解释的不对吧,闭包应该可以看做一个函数,可以让外部访问函数内部的变量,而不会污染全局。 你说的是访问外部的变量。
作者回复: 光秃秃的一个论点,没来源没分析,就说我讲错了,我还真不知道该怎么反驳你……
2019-07-2632 - Richard当你认为你已经掌握了JS,JS会反手给你一巴掌。2019-03-28174
- 以勒前面学的宏观任务和微观人物 还记得的同学举个手,点个赞2019-04-01122
- mgxian作为一个非前段程序员 看了老师的专栏发现 js 坑真多 各种奇怪的语法和表现 感觉像语言的 bug 一样2019-03-28733
- alue这个教程我总感觉支零破碎的,像盲人摸象一样。可能是我的问题吧2020-08-2029
- 让时间说真话首先讲了脚本和模块,而这次老师讲的模块补缺我近段时间用模块时的一些疑问,Js的预处理语法让我更加理解了以前经常用到的作用域。感谢winter!!!2019-03-309
- 阿成https://github.com/aimergenge/get-exported-names-via-babel2019-03-2817
- 费马能否讲讲为什么导出的无论是基本类型还是引用类型,都会和原模块的变量有绑定关系?2019-03-2926
收起评论