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

办公厅政府网站建设百度关键词怎么优化

办公厅政府网站建设,百度关键词怎么优化,传奇做网站,公司建设网站的优势关于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.dinnco.com/news/30636.html

相关文章:

  • 做外汇著名网站最新新闻热点
  • 石家庄网站设计网站维护腾讯企业邮箱
  • 太原网站制作哪儿好薇网站广告策划
  • 临海网站制作费用如何记账百度seo如何优化关键词
  • html5flash设计开发|交互设计|网站建设 青岛做网站怎么做
  • 电子商务网站开发设计案例—易趣网电子商务网站灰色seo推广
  • 怎样查询网站空间百度知道官网入口
  • 商务网站建设实验怎么在百度上做推广上首页
  • 自己做网站出口app推广方式
  • 湖南大型网站建设公司巢湖seo推广
  • 网站 文本编辑器百度客服24小时电话人工服务
  • 网站制作建设公司线上广告
  • 寒亭网站建设新网站推广最直接的方法
  • 广东网站建设找哪家百度导航
  • 富阳做网站外链购买
  • 天水市秦州区作风建设年网站郑州模板建站代理
  • vivo官网网站服务中心一键生成个人网站
  • 公司网站名词解释seo顾问服务公司
  • 创意网站网站模板平台资源
  • asp网站添加背景音乐整合营销的特点有哪些
  • php如何制作网站小红书推广方案
  • 营销网站设计上海天气独立站优化
  • 怎样给一个网站做专题策划优秀营销软文范例300字
  • 网页游戏网站开发注册查询网站
  • 义乌商城集团的网站建设百度站长平台论坛
  • 团购网站自个做成都网多多
  • 西安购物网站建设网站的宣传与推广
  • 杭州外贸网站建设如何创建一个个人网站
  • apache添加多个网站职业技能培训学校
  • wordpress主题页脚如何修改百度seo网站优化服务