import与require

今天的面试觉得前面回答的还挺好的,到了import与require这里有些懵逼,老实说在使用的时候是真的没有考虑过这么多,一懵逼就乱说,可以说如果今天挂掉了,就是这里垮掉了。

首先问了我,import与require都是什么加载方式?

 什么东西?这什么玩意?加载方式,我就 记得把他import进去和require进去就好了啊。

然后,面试官看我一脸懵逼就问我说,那这两个都是怎么引入的?

我说就import和require一下。。。

面试官说:那在哪里引入呢?

我说:在页面最上方,嗯,script标签的最上方。

他说,那你说,他们是什么加载方式?

我:。。。。



整个过程其实复杂又曲折,感觉面试官是真的在很有耐心的在引导我回答,可是,真是全是我没有听过的名词,我真的不知道。

然后回答的都是错的,感觉我面试要挂了。哎!!!


好了,日记就不写了。现在好好看看这他妈的究竟是什么:

加载方式 规范 命令  特点
运行时加载 CommonJS/AMD require 社区方案,提供了服务器/浏览器的模块加载方案。非语言层面的标准。只能在运行时确定模块的依赖关系及输入/输出的变量,无法进行静态优化。
编译时加载 ESMAScript6+ import 语言规格层面支持模块功能。支持编译时静态分析,便于JS引入宏和类型检验。动态绑定。
require是在运行时加载,所以,他可以一边运行,一遍请求和加载,所以,他可以写在文件的中间,而import是在编译时加载,所以,他写在页面的开头,样他就在整个页面加载之前,他需要的东西全部import进来,否则会编译不通过的。


那么问题来了 ,他们究竟是怎样的引入过程,这样就很容易理解了

以下是我的个人理解,今天面试完,面试官问我你还有什么想问的时候,其实我是想要问这个的,那个我怕他觉得我没救了就问了其他的问题:(如果是错误的,后期会修改的):

import是页面的最上方的加载,是一种静态的加载,那么他会把父级的模块引入到该文件中,像是src的样子,而require是时一种动态的加载,他是在使用的时候在去请求引入的资源,他是动态的,像是href的样子,是作为一种中间的链接,并不写入文件中。


关于import和require的来源相信大家都很清晰,require是commonJS规范的语法,而nodeJS是基于commonJS的,所以在node中使用的是require。ES6是生于node之后,在ES6中import和export是一对的。


在有的后期框架中,require和import是可以混合用的。


至于如何使用,看:

import和require的用法

他说的真的很清晰。


秋招真的很累,现在手上有一个offer,可是真的不想去。并非自持清高而是我觉得我并不差。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值