commonJs和es6的区别

2023-05-16

commonJs 示例

// 导入
const valid = require('./utils/index')
console.log(valid.isEmail('8738365456@199.com'))

// 导出sayHi方法,exports变量指向module.exports
exports.sayHi = function (user) {
	console.log('hi,'+ user)
}

exports.exports = {} // 表示当前模块对外输出的接口,其他文件加载该模块,就是读取module.exports。

es6 示例

// 导入
import {isEmail, isMobile} from './utils/index'

// 导出
export function sayHi = (user) => {
    console.log('hi,'+ user)
}

export default = {} // 默认导出,一个js模块里面只能有一个
  • CommonJS 模块输出的是一个值的拷贝, 引入后使用不会受到原文件的影响,ES6 模块输出的是值的引用。
  • CommonJS 模块是运行时加载,ES6 模块是编译时输出接口。
  • CommonJs 是单个值导出,ES6 Module可以导出多个(解构)。
  • CommonJs 是动态语法(require)可以写在判断里,ES6 Module 静态语法(import)只能写在顶层。
  • CommonJs是同步加载的,一般在服务端使用,如果在浏览器使用需要使用browserify等编译工具;es6的import可以按需加载。

好文参考:

  1. https://blog.csdn.net/weixin_33275327/article/details/89176902
  2. https://segmentfault.com/a/1190000023349541
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

commonJs和es6的区别 的相关文章

  • Object.entries()方法使用详解

    一 概述 对象的数据处理方法 我们熟知的有很多 比如Object keys Object values for in等 本文将其与其它常见使用方法进行对比 详细解析其特性 二 对比 for in Object entries 方法的优势 1
  • 【按照年月去统计信息并分类展示】

    1 前言 需求是需要将历史订单按照年月分类展示 并展示汇总值 由于后端返回的是数组的数据 并没有将数据做好统计分类 出于对自己的自信以及不想给别人添麻烦的信息 然后自己写了一下处理的方法 然后放上最后的效果图吧 2 代码实现 按照月份统计每
  • ES6之Map和Set有什么不同?

    一 Map 1 定义 Map是ES6提供的一种新的数据结构 它是键值对的集合 类似于对象 但是键的范围不限于字符串 各种类型的值都可以当做键 Object结构是 字符串 值 的对应 Map结构则是 值 值 的对应 2 代码示例 Map本身是
  • Promise 捕获错误

    你好 我是南一 这是我在准备面试八股文的笔记 如果有发现错误或者可完善的地方 还请指正 万分感谢 前言 今天做项目时 遇到Promise抛出错误捕获不到的情况 然后我就去找了 阮一峰ES6入门重新学了一遍 又加深了对Promise的理解 分
  • 3分钟玩转:ES6 模块化

    ES6 模块 ES6 使用 export 和 import 导出和导入模块 导出模块 一个模块就是一个独立的 JS 文件 该文件内的变量外部无法获取 若希望能让外部获取模块内的变量 则要用 export 关键字暴露变量 分别暴露 命名行内导
  • 【JS 构造

    个人格言 时间是亳不留情的 它真使人在自己制造的镜子里照见自己的真相 Git专栏 Git篇 JavaScript专栏 js实用技巧篇 该专栏持续更新中 目的是给大家分享一些常用实用技巧 同时巩固自己的基础 共同进步 欢迎前来交流 你的一键三
  • JavaScript 实现html导出为PDF文件

    相信各位前端工程狮们在一些报表项目 管理系统项目中都会遇到在这样的需求 申请报 表格 简历等等图文信息有导出为PDF文件 下面是记录我在项目中完成该需求的代码dome 发布出来也是希望对大家有些帮助 1 整体思路 将HTML元素打印或导出为
  • 上拉加载原理

    实现思路 之前写过一篇触底加载 经过一番苦学钻研 优化一下 样式方面 滚动区域是给固定高度 设置 overflow y auto 来实现 接下来看看js方面的实现 其实也很简单 触发的条件是 可视高度 滚动距离 gt 实际高度 例子我会使用
  • 如何使用节点模块打包资源

    我试图在节点模块 模块 B 中包含一些模拟数据 然后能够从调用模块 模块 A 引用该数据 数据是一个文本文件 位于 data我在模块 B 上有一个函数 它使用 dirname 调用数据 但是当然 当从模块 A 调用此函数时 dirname
  • common-js utils 中的 JSON 模式验证是否支持引用?

    common js utils 中的 JSON 模式验证是否支持引用 我不能这样做https github com kriszyp commonjs utils blob master json schema js 我尝试了以下代码 typ
  • CJS 和 ES6 模块之间的语法差异

    在 CJS 模块中我会使用export and var plugin require plugin 导出 导入在 ES6 模块中我会使用export and import as plugin from plugin 导出 导入 还有更多语法
  • 前端基础:回顾es6相关知识

    Author note 题记 ECMAscript is international standard of javascript ECMA 是 js的国际标准版语言 let and const 为什么之前用var现在需要用let cons
  • Webpack动态请求

    它不起作用 let serviceName AuthService let servicePath app services serviceName let service require servicePath 它正在工作 let ser
  • React库如何直接需要它的源库?

    我正在查看 Facebook 的 React 源代码 发现在整个项目源代码中 他们没有指定加载自己模块的相对路径 例如 而不是做var foo require bar foobar 图书馆使用var foo require foobar 就
  • 为什么 require.main.require.resolve 未定义?

    问题 在 Node js 模块的范围内有一个module对象本来就是对当前模块的引用 a require功能意味着需要模块 and a require resolve功能意味着查找模块的位置 但不加载模块 而是返回解析的文件名 如果有一个m
  • 漂亮打印 HTML 的模块?

    我正在开发一个 grunt 构建文件 它会点击 URL 并将输出写入静态 HTML 文件 我点击的 url 已压缩 HTML 我想在写入静态文件之前将其打印出来 有什么好的模块可以做到这一点吗 我环顾四周 似乎 Max Ogden 的 ht
  • NodeJS 模块与类

    对我来说 类与 NodeJS CommonJS 模块非常相似 您可以拥有许多它们 它们可以重复使用 它们可以互相使用 并且通常每个文件一个 是什么让模块与类如此不同 使用它们的方式不同 命名空间的差异也很明显 除此之外 它们对我来说似乎非常
  • 使用 Angular JS 时如何加载 AMD 模块?

    由于某种奇怪的原因Angular JS 有自己的模块系统 既不是 AMD 也不是 CommonJS http docs angularjs org guide module 我有许多 AMD 格式的现有模块 我想在 Angular 应用程序
  • 使用 grunt 从 browserify 生成源映射

    我已按照此处的说明进行操作 https www npmjs org package grunt browserify https www npmjs org package grunt browserify 尝试在 grunt 上为 bro
  • Webpack 和外部库

    我正在尝试 webpack http webpack github io http webpack github io 看起来真的很不错 但我有点被困在这里了 假设我正在为库 f ex jQuery 使用 CDN 然后在我的代码中 我想要r

随机推荐

  • github提交代码-简介

    使用步骤 在 github 上 fork 一个项目到自己的仓库 需要先fork xff0c 因为原始项目没有权限git clone https github com name repos git 从自己的仓下 clone代码到本地修改本地代
  • linux时间相关结构体和函数整理

    一 时间类型 Linux下常用的时间类型有4个 xff1a time t xff0c struct timeb struct timeval xff0c struct timespec xff0c clock t struct tm 1 t
  • xargs 命令

    xargs xargs 命令 用途 构造参数列表并运行命令 大多数 Linux 命令都会产生输出 xff1a 文件列表 字符串列表等 但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办 xff1f 例如 xff0c file 命令
  • fedora20安装putty No package ‘gtk+-2.0′ found

    这里转载一下 我在编译安装emacs23的时候提示No package gtk 43 2 0 found centos的开发环境 网上搜了一下 xff0c 发现安装gtk 43 2 0不是一件容易的事 xff0c 后来无意发现一个帖子挺不错
  • Reverse Words in a String

    Given an input string reverse the string word by word For example Given s 61 34 the sky is blue 34 return 34 blue is sky
  • Linked List Cycle

    Given a linked list determine if it has a cycle in it Follow up can you solve it without using extra space 最初代码 xff0c 错误
  • Linked List Cycle II

    Given a linked list return the node where the cycle begins If there is no cycle return null Follow up Can you solve it w
  • Evaluate Reverse Polish Notation

    Evaluate the value of an arithmetic expression in Reverse Polish Notation Valid operators are 43 Each operand may be an
  • Insertion Sort List

    Sort a linked list using insertion sort 对一个线性链表排序 xff0c 维护两对指针即可 ListNode insertionSortList ListNode head if head return
  • mac上忘记mysql密码完美解决方案

    最近项目用到mysql xff0c 之前装过一个 xff0c 可是忘记了当时设置的密码 xff0c 然后走上了修改密码的坎坷道路 在百度 xff0c Google了一堆资料之后还是 xff0c 发现处处是给程序员埋的坑 于是下决心 xff0
  • Word Search

    Given a 2D board and a word find if the word exists in the grid The word can be constructed from letters of sequentially
  • 网络编程概述

    今天开始正式学习网络编程这一块 xff0c 特做此笔记记录学习过程 要编写通过计算机网络通信的程序 xff0c 首先要确定这些程序相互通信所用的protocol 在深入设计一个协议的细节之前 xff0c 应该从高层次决断通信由哪个程序发起以
  • unix网络编程(二)Tcp:传输控制协议

    1 TCP xff08 Transmission Control Protocol xff0c 传输控制协议 xff09 xff0c 其提供一下服务 xff1a 一 xff09 TCP提供客户与服务器的链接 xff0c 一个客户建立与一个给
  • TIME_WAIT状态

    在Tcp关闭连接过程中 xff0c 主动关闭的一段会进入TIME WAIT状态 xff0c 且在该状态持续两倍最长分节生命期MSL的时间 Tcp实现中必须选择一个MSL xff08 maximum segment lifetime xff0
  • 《Unix环境高级编程》学习笔记--文件和目录-1

    unix环境高级编程 学习笔记 1 unix环境高级编程学习笔记 1 12 文件长度13 文件截断 4 12 文件长度 文件的长度由stat结构的st size表示 xff0c 以字节为单位 符号链接 xff0c 文件长度为文件名称中的实际
  • GLIBC_2.14’ not found

    usr local mysql bin my print defaults lib64 libc so 6 version 96 GLIBC 2 14 not found问题解决方案 转载site http blog csdn net do
  • CMMI2.0之我见-验证和确认VV&同行评审PR

    编者按 xff1a CMMI2 0之我见系列将通过系列文章形式介绍CMMI2 0所涉及到的其中20个实践域 xff0c 笔者将通过系统性的梳理 浅显易懂的文字描述 xff0c 同时结合笔者的思考和观点 xff0c 对每个实践域的目标以及所基
  • Python数据可视化之Matplotlib-技巧篇

    常用技巧 特殊直线 画出过特定点的无穷直线 xff0c 可以用 axline 来实现 确定平面直线 xff1a 两个不同的点或者一个点和斜率 语法 xff1a plt axline xy1 xy2 61 None slope 61 None
  • IDEA怎么复制错误信息

    方式一 xff1a 鼠标放在该提示上 xff0c 然后选中 xff0c 选中时不要松开鼠标左键 xff0c 同时按ctrl 43 c复制即可 方式二 xff1a 点击错误信息 xff0c 在IDEA最下栏会显示错误信息 xff0c 可以点击
  • commonJs和es6的区别

    commonJs 示例 span class token comment 导入 span span class token keyword const span valid span class token operator 61 span