JS 中require和import总结

简介: 都是为了js模块化编程遵循规范require 是AMD规范引入方式import 是es6的一个语法标准,需要转换成es5的语法才能兼容浏览器调用时间require是运行时调用,所以require理论上可以运用在代码的任何地方import 是编译时调用,所以必须放在文件头部...

都是为了js模块化编程

遵循规范

  • require 是AMD规范引入方式
  • import 是es6的一个语法标准,需要转换成es5的语法才能兼容浏览器

调用时间

  • require是运行时调用,所以require理论上可以运用在代码的任何地方
  • import 是编译时调用,所以必须放在文件头部

本质

  • require 是赋值过程,其实require的结果就是对象、数字、字符串、函数等,再把require的结果赋值给某个变量
  • import 是解构过程,但是目前所有的引擎都还没用实现import,所以需要babel进行转码,把import转码为require

require/exports写法

const fs = require('fs')

exports.fs = fs
module.exports = fs

import/export写法

导入

import utils from 'utils'
import {default as newName} from 'utils'
import * as newName from 'utils'
import {isPhone} from 'utils'
import {isPhone as isPhone2} from 'utils'
import utils, {isPhone} from 'utils'

导出

export default utils
export const utils
export function utils
export { isPhone, isObject }
相关文章
|
15天前
|
JavaScript 前端开发
JS require 与 import 的区别
JS require 与 import 的区别
14 1
|
4月前
|
JavaScript 前端开发
JS中 require 与 import 的区别
JS中 require 与 import 的区别
|
6月前
|
前端开发
【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
【前端异常】解决前端引入Bootstrap的dropdowns 菜单时报错,Uncaught TypeError: Bootstrap‘s dropdowns require Popper.js
55 0
|
7月前
|
JavaScript
js文件中的require以及import 等语句中的{ }的作用
js文件中的require以及import 等语句中的{ }的作用
|
7月前
|
JavaScript 前端开发 编译器
JS ES6中export和import史上最全
JS ES6中export和import史上最全
|
11月前
|
JavaScript 前端开发
js中的import和export
# 引言 我们在开发时,如果将 JavaScript 加载到页面中,通常是以小片段的形式提供效果和交互,一般会把所有的 JavaScript 代码全都写在一个文件中,并加载到一个 `script` 标签中。尽管可以把 JavaScript 拆分为多个文件,但是所有的变量和函数仍然会被添加到全局作用域中。 由此我们需要使用第三方代码来完成常见任务,并且需要把代码分解为模块化的文件,避免污染全局命名空间。 ECMAScript 2015 规范在 JavaScript 语言中引入了 *module*,也有了 import 和 export 语句。 `import`和`eport`声明共同作用
|
JavaScript
js:动态import导入script脚本文件
js:动态import导入script脚本文件
198 0
|
JavaScript
JS之export and import (详细介绍)
JS之export and import (详细介绍)
180 0
JS之export and import (详细介绍)
|
JavaScript 前端开发 API
JavaScript中字符串的API使用总结
JavaScript中字符串的API使用总结
|
JSON 编解码 JavaScript
【笔记】js URL编码解析总结
js URL编码解析总结
228 0