当前位置: 首页 > news >正文

办公厅政府网站建设营销软文300字

办公厅政府网站建设,营销软文300字,网站专题制作原则,临漳 网站建设关于JavaScript 的模块化规范,可以移步至: 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 & 区别」 下面进入正题 require 与 import 两种引入模块方式,到底有什么区别呢? 大致可以分为以下几个方面&#…

关于JavaScript 的模块化规范,可以移步至: 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 & 区别」

下面进入正题

requireimport 两种引入模块方式,到底有什么区别呢?

大致可以分为以下几个方面:

一、写法上

  • require/exports 的用法:

    const path = require('path')
    exports.path = path
    module.exports = path
    
  • import/export 的用法:

    import path from 'path'
    import {default as path} from 'path'
    import * as path from 'path'
    import { dirname } from 'path'
    import { dirname as dir } from 'path'
    import path, {dirname} from 'path'export default path
    export const path
    export function dirname
    export {dirname}
    export * from 'path'
    

二、执行顺序

  • require:不具有提升效果,到底加载哪一个模块,只有运行时才知道。

    const path = './' + fileName;
    const myModual = require(path);
    
  • import:具有提升效果,会提升到整个模块的头部,首先执行。

    // import 的执行早于foo的调用。本质就是 import 命令是编译阶段执行的,在代码运行之前。foo();import { foo } from 'my_module';
    

三、输入值的区别

  • require 输入的变量,基本类型数据是赋值,引用类型为浅拷贝,可修改。

  • import 输入的变量都是只读的,如果输入 a 是一个对象,允许改写对象属性。

    // a.js
    let obj = {foo() {console.log('obj...foo');}
    }
    export {obj
    }// b.js
    import { obj } from '/a.js'// 非法操作
    obj = {}; // Syntax Error : 'a' is read-only; 
    // Uncaught TypeError: Assignment to constant variable.// 合法操作
    obj.foo = 'hello'; 
    

四、是否可以使用表达式或变量

  • require:可以使用表达式和变量

    let a = require('./a.js')
    a.add()let b = require('./b.js')
    b.getSum()
    
  • import:静态执行,不能使用表达式和变量,因为这些都是只有在运行时才能得到结果的语法结构。

    // 报错
    import { 'f' + 'oo' } from 'my_module';// 报错
    let module = 'my_module';
    import { foo } from module;// 报错
    if (x === 1) {import { foo } from 'module1';
    } else {import { foo } from 'module2';
    }
    

总结

require/exportsimport/export 本质上的区别,实际上也就是 CommonJS 规范与 ES Module 的区别。

  1. 浏览器在不做任何处理时,默认是不支持 importrequire
  2. babel 会将 ES6 模块规范转化成 CommonJS 规范;
  3. webpackgulp 以及其他构建工具会对 CommonJS 进行处理,使之支持浏览器环境
    它们有三个重大差异。
    • CommonJS 模块输出的是一个值的拷贝,ES Module 输出的是值的引用。
    • CommonJS 模块是运行时加载,ES Module 是编译时输出接口。

      导致该差异是因为 CommonJS 加载的是一个对象(即 module.exports 属性),该对象只有在脚本运行完才会生成。而 ES Module 不是对象,它的对外接口只是一种静态定义,在代码静态解析阶段就会生成。

    • CommonJS 模块的 require() 是同步加载模块,ES Module 的 import 命令是异步加载,有一个独立的模块依赖的解析阶段。

关于 CommonJS 规范与 ES Module 的区别,大家可以移步至: 【JavaScript高级】模块化规范「一文让你彻底搞懂前端模块化规范 & 区别」 进行阅读。

http://www.tj-hxxt.cn/news/20149.html

相关文章:

  • 招聘网站建设需求2023近期舆情热点事件
  • 书亦烧仙草网络营销方式seo站长平台
  • 做网站开发的公司优化大师官网入口
  • 上海市建设工程质监站网站seo引擎优化外包公司
  • 中国工程建设企业协会网站最热门的短期培训课程
  • 网站架构变迁网站出售
  • 网站制作整个的流程是什么十大少儿编程教育品牌
  • 做网站多少钱西宁君博专注如何提高关键词搜索排名
  • 自己切片视频做网站双11销量数据
  • 旅游网站怎么用dw做seo网站优化软件
  • dw怎么做音乐网站网络推广靠谱吗
  • 什么是网站静态化合肥网络推广优化公司
  • diango做的网站怎么用免费软件下载网站有哪些
  • 泰州网站快速排名优化推广的软件有哪些
  • ie的常用网站湖南网站优化
  • 局域网如何做视频网站建设网络销售模式有哪些
  • 北京专业网站制作公司管理方面的培训课程
  • 有没有做企业网站的保定网站制作
  • 做网站永久企业培训师资格证
  • 网站方案设计视频号视频下载助手app
  • 泉州seo培训郑州客串seo
  • 泗洪做网站公司安康seo
  • 兰州网站开发哪里可以做浏览器下载安装
  • 邢台移动网站建设公司国际新闻最新消息十条摘抄
  • 梅河口做网站的公司如何推广一个项目
  • 郑州做网站服务器营销型网站建设运营
  • 做企业网站用什么cms好广告推广图片
  • 新闻类网站html模板免费下载企业网站seo哪里好
  • 顺的做网站便宜吗爱站权重查询
  • 图片做多的网站是哪个市场监督管理局官网入口