require和import区别

require和import区别区别 1 模块加载的时间 require 运行时加载 import 编译时加载 效率更高 区别 2 模块的本质 require 模块就是对象 输入时必须查找对象属性 import ES6 模块不是对象 而是通过 export 命令显式指定输出的代码 再通过 import 命令输入 这也导致了没法引用 ES6 模块本身 因为它不是对象 CommonJS 模块 let exists read

区别1:模块加载的时间

test(); import { 
    test} from '/test'; 

上面的代码不会报错,正常执行

区别2:模块的本质

// CommonJS模块 let { 
    exists, readFile } = require('fs'); // 等同于 let fs = require('fs'); let exists = fs.exists; let readfile = fs.readfile; 

上面CommonJs模块中,实质上整体加载了fs对象(fs模块),然后再从fs对象上读取方法

// ES6模块 import { 
    exists, readFile } from 'fs'; 

上面ES6模块,实质上从fs模块加载2个对应的方法,其他方法不加载

区别3:严格模式

// m1.js export var foo = 'bar'; setTimeout(() => foo = 'baz', 500); // m2.js import { 
   foo} from './m1.js'; console.log(foo); //bar setTimeout(() => console.log(foo), 500); //baz 

ES6 模块之中,顶层的 this 指向 undefined ,即不应该在顶层代码使用 this

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233933.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《译 SFML Essentials 英文版》—— 《第一章》 SFML 入门

    《译 SFML Essentials 英文版》—— 《第一章》 SFML 入门目录创建窗口VideoModeStyleContextSettingsDisablingthemousecursor(禁用鼠标光标)Thegameloop Eventhandling(处理事件)WindowrelatedeventsKeyboardrelatedeventsMouserelatedeventsjoystick…

    2025年7月28日
    2
  • java SPI机制的使用及原理

    java SPI机制的使用及原理

    2021年8月3日
    55
  • 【软件资源】VS2013软件安装全教程!(附VS各版本下载地址)

    【软件资源】VS2013软件安装全教程!(附VS各版本下载地址)VisualStudio(简称VS)是微软公司旗下最重要的软件集成开发工具产品。是目前最流行的Windows平台应用程序开发环境,也是无数人学习编程的入门软件之一。VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件,目前还可开发安卓平台应用及IOS平台应用。【软件名称】:VisualStudio2013【安装环境】:Win7/Win8/Win10联网【下载链接】.

    2025年9月1日
    6
  • 雅虎十四条性能优化原则「建议收藏」

    雅虎十四条性能优化原则「建议收藏」雅虎十四条性能优化原则欢迎访问我的博客https://qqqww.com/,祝所有码农同胞们早日走上人生巅峰,迎娶白富美~~首先我去看了《雅虎十四条性能优化原则》,当然是看大佬博客翻译过来的,纯英文的我看不懂Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在减少HTTP请求使用CDN添加Expire…

    2022年7月15日
    31
  • android和androidx区别(为什么总是听到别人说自己坏话)

    本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索郭霖即可关注,每个工作日都有文章更新。Android技术迭代更新很快,各种新出的技术和名词也是层出不穷。不知从什么时候开始,总是会时不时听到AndroidX这个名词,这难道又是什么新出技术吗?相信有很多朋友也会存在这样的疑惑,那么今天我就来写一篇科普文章,向大学介绍AndroidX的前世今生。Android系统在刚刚面世的…

    2022年4月13日
    33
  • Java安全之SnakeYaml反序列化分析

    Java安全之SnakeYaml反序列化分析0x00前言偶然间看到SnakeYaml的资料感觉挺有意思,发现SnakeYaml也存在反序列化利用的问题。借此来分析一波。0x01SnakeYa

    2021年12月12日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号