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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • mysql 练习题

    mysql 练习题一、上机内容使用SQL语句创建数据库studentsdb。、Createdatabasestudentdb;2.使用SQL语句选择studentsdb为当前使用数据库。Usestudentdb;3.使用SQL语句在studentsdb数据库创建数据表student_info、curriculum、grade,三个表的数据结构如表1-表3所示。createtablestude…

    2022年9月18日
    3
  • php new reflectionclass,PHP: ReflectionClass – Manual

    php new reflectionclass,PHP: ReflectionClass – ManualReflectionClass::__construct—СоздаётобъектклассаReflectionClassReflectionClass::getConstant—ВозвращаетопределённуюконстантуReflectionClass::getConstructor—ВозвращаетконструкторклассаRefle…

    2025年8月12日
    4
  • 动态调用function

    动态调用function

    2021年8月10日
    63
  • goland 永久激活 3月最新注册码

    goland 永久激活 3月最新注册码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    37
  • C语言函数不可以单独编译_fcntl函数

    C语言函数不可以单独编译_fcntl函数函数原型:externvoidbzero(void*s,intn);函数功能:将字节字符串s的前n个字节置为0(包括‘\0’);头文件:#include说明:bzero函数是将s的前n个字符置为零,听起来是不是跟memset函数的功能有些类似呢。事实上,bzero函数包含在string,h头文件中,而string.h曾经是POSIX标准的一部分,但是在posix.1

    2022年10月13日
    1
  • sklearn.KFold用法示例

    sklearn.KFold用法示例sklearn.KFold用法示例参数解释用法示例参数解释classsklearn.model_selection.KFold(n_splits=’warn’,shuffle=False,random_state=None)API文档将训练/测试数据集划分n_splits个互斥子集,每次用其中一个子集当作验证集,剩下的n_splits-1个作为训练集,进行n_splits次训练和…

    2022年9月20日
    2

发表回复

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

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