ES6module

2023-11-07

开发规范:

  1. 声明式函数应设置为常量。
  2. 对象尽量静态化,一旦设置不得随意添加新的属性,或者使用Object.assign()
  3. 默认导出一个对象用大驼峰
  4. 函数的默认值:
    function test(a, b, { bool = false } = {}) { 
        console.log(bool)    
    }

基础知识:

1. es6的顶层指向 undefined

2.module 导出

2.1 export v1 as version1

2.2 export var v1 = 2;

2.3 var m = 1; export { m } || export { m as mode };

3.

commonJs 输出的是值得拷贝,运行时加载

es6module 输出的是值得引用,编译时加载,必须引入在模块的顶层(会提升到整个模块的头部并首先执行),处于块级作用于内会报错。

4.不会报错,编译时加载。

foo();

import { foo } from 'utils.js';

5. import 语句会执行所加载的模块,只执行,不会输入任何值。

import 'loadsh';

import 'loadsh'; // 只执行一次

6.require 和import 加载方式不同,不要放在同一个模块。

eg:

require('core-js/modules/es6.symbol');

import React from 'react'; // 不一定得到预期的结果

7.

import { a, b } from './circle'      等同于     import * as mode from './circle'

mode.a/mode.b

由于是编译时加载不允许运行时改变。mode.a = 10 

8. export 和 import 的复合写法

import { foo, bar } from '.my_module';  export { foo, bar };

等价于 export { foo, bar } from 'my_module';

9. 更改接口名: export { foo as myFoo } from 'my_module';

10. 整体输出 export * from 'my_module';

11. export default 一个模块只能有一个默认输出。

12. export Foo, { bar } from 'Module'

13. export * 会忽略要输出文件的默认方法;

eg1:

// utils.js
export let t1 = () => { console.log('t1') }
export let t2 = () => { console.log('t2') }
export default function() { console.log('default') }

// 使用
import * as mode from './utils.js';
mode => t1 t2 default

---------------------------------------------------------

eg2:
// utils.js
utils.js
export let t1 = () => { console.log('t1') }
export let t2 = () => { console.log('t2') }
export default function() { console.log('default') }

// 引入index.js
export * from 'utils.js'
// index 引入要使用的模块
import * as mode from 'index.js';
mode => t1 t2

14.const 声明的常量只在当前代码块内有效。

15.import(specifier)动态加载,返回promise异步加载. 等同于require(xxxx) 同步加载

eg1:
const main = document.querySelector('main');

import(`./section_modules/${pathName}.js`)
.then(res => {})
.catch(err => {})


Promise.all([ import('./modeA'), import('./modeB'), import('./modeC') ])
.then(res => {})
.catch(err => {})

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

ES6module 的相关文章

  • 使用 Angular 将焦点捕获在 html 容器中

    我正在构建一个可访问的网站并尝试管理焦点 我需要打开一个模式 然后将焦点放在模式中的第一个元素上 然后捕获焦点 直到模式关闭 取消 或 接受 HTML a href Open Modal a div h3 Terms of Service
  • 使用 fb.ui 时如何检测用户取消共享

    我正在使用提供的文档here https developers facebook com docs sharing reference share dialog使用以下代码 共享对话框正确显示 问题是我无法区分用户在对话框中执行的 取消 和
  • 如何避免多系列折线图d3.js的工具提示重叠

    我已经在多系列折线图上创建了工具提示 如下所示在这里回答 https stackoverflow com questions 34886070 d3 js multiseries line chart with mouseover tool
  • 禁用 chrome React DevTools 以进行生产

    我正在尝试使用 gulp 和 envify 对我的 React 应用程序进行浏览器化以设置 NODE ENV 因此 我可以删除反应警告 控制台中的错误报告 甚至我的代码来禁用某些功能 例如react addons perf的要求 而且效果很
  • 如何在 的每四个循环项之后添加

    我想在循环中的每第四个数字项之后退出循环 我想创建一个二十人的名单 在每一个tr应该是4个人 So I want to break from the loop after every 4th number of loop My one tr
  • 在 JSON 数组中按属性查找对象

    我在获取 JSON 数据中的字符串时遇到问题 格式如下 name Alice age 20 id David last 25 id John last 30 有时它会一起改变位置 John从第三名到第二名 name Alice age 20
  • 从字符串中提取电子邮件地址

    我有一个像这样的字符串 Francesco Renga lt email protected cdn cgi l email protection gt 我只需要提取电子邮件 即 电子邮件受保护 cdn cgi l email protec
  • 如何使用 RSpec 测试 javascript 重定向?

    我正在使用 xhr post 与控制器交互 并且我期待重定向 在 js erb 中 我有 window location href address 手动测试 浏览器会正确重定向 我如何使用 RSpec 测试它 response should
  • 使用 Moment.js 从 ISO 字符串中提取 utcOffset

    使用 moment js 我尝试从 ISO 日期字符串中提取偏移量 以便稍后在格式化纪元时间戳时使用该偏移量 以确保时间戳的转换位于同一时区 即使字符串中的偏移量为 0400 结果始终为0 var currentTime 2015 03 1
  • 为什么 Bootstrap 需要 jQuery? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我已经多次用谷歌搜索这个问题 但从未找到满意的答案 大多数答案似乎只是说 是的 Bootstrap 插件确实需要 jQuery https st
  • 使用 ngx-translate 时更改 URL

    当有人使用 ngx translate 单击所选语言时 我尝试更改 URL 我想我应该通过订阅语言更改事件然后修改当前的 url 以反映所选的语言来做到这一点 因为我是新手 所以我不确定是否需要服务来做到这一点 或者可能是另一种解决方法 我
  • 如何在 Vue.js 2 中使用事件总线通过自定义事件传递数据

    我在用着Vue js 2 5 x 在我的玩具项目中 我实现了一个事件总线 类似于所示的here https alligator io vuejs global event bus 事件总线在 Vue 原型中全局注册为 eventBus 然后
  • 同源政策目的可疑

    正如我所读到的 同源策略是防止源自 邪恶 域 A 的脚本向 良好 域 B 发出请求 换句话说 跨站点请求伪造 玩了一下我了解到的Access Control Allow Origin标头和CORS据我了解 它允许从好域 B 指定服务器 域
  • 检测浏览器是否支持 contentEditable?

    There s 这个问题 https stackoverflow com questions 3497942 browser detect contenteditable features 但发布的解决方案是浏览器嗅探 我试图避免这种情况
  • 401 未经授权的帖子回复

    我一直在使用 Angular 模板制作 Node js 网站 但我无法在 DB Mongo 上创建数据 这是代码 节点路由 var Property mongoose model Property var jwt require expre
  • 通过排列四个给定数字找到最大可能时间 HH:MM

    我最近为了工作晋升而参加了编码测试 这是我真正遇到的任务之一 我想知道什么是最好的方法来做到这一点 我使用了大量的 if 和 if else 这不是最干净的解决方案 但完成了工作 我被问到的问题是 将 4 个数字格式化为 24 小时时间 0
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 以特定顺序运行具有效果的 jQuery 函数

    我在 javascript 函数中有一些 jQuery 可以更改页面上的文本并以特定的时间间隔淡入和淡出 我希望这些函数在每个函数完成其效果后按顺序运行 dialogueExchange1 dialogueExchange2 dialogu
  • 对于调用另一个异步函数的异步函数,玩笑测试失败

    我正在尝试测试一个使用另一个异步函数返回的数据的异步函数 这是解释我的问题的代码 StudentInfo js export async function getData studentData imported from another
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT

随机推荐

  • C语言常见问题(10):Sections of code should not be commented out

    注释掉的代码及时清理掉 让函数的body干净清洁 不要杂草丛生
  • clang: error: no such file or directory:xxx的处理方法

    经常会遇到这个问题 后来看了一下 大概是在编程的适合改变了工程目录结构 在编译的时候无法找到相应的文件结构 说句话白话 编译器是傻的 你小心或者不小心 结果文件的结果和以前不一样了 编译器是不知情的 还按照之前的方式进行文件之间的链接 所以
  • JavaScript面试题看这一篇就够了,简单全面一发入魂(持续更新 step1)

    目录 1 BOM DOM有什么区别 1 DOM 2 BOM 2 JavaScript中代码后加不加分号 有什么区别 3 var与let const有什么区别 4 原始值和引用值有什么区别 5 什么是执行上下文 6 解释一下JavaScrip
  • hive的高级分组

    1 with cube 2的n次方 使用场景 维度字段之间无关系 底层分组实现 可以实现hive多个任意维度的查询 cube a b c 则首先会对 a b c 进行group by 然后依次是 a b a c a b c b c 最后在对
  • 「已解决」 iTunes 由于卸载 Apple Software Upadate 失败的问题。

    已解决 iTunes 由于卸载 Apple Software Upadate 失败的问题 官方给出的解决方案是 相信大家都会卡在第 2 个步骤上面 卸载 Apple Software Update 时发生出错 这里给出几个方案 方案 1 将
  • 广电大数据用户画像及营销推荐策略(四)——Python实现

    本次大数据项目数据及分析均做脱敏化和保密化 主要分享思路体系 全程用Python实现 数据和代码均不提供 如有建议欢迎讨论 4 模型构建 在实际应用中 构造推荐系统时 并不是采用单一的某种推荐方法进行推荐 为了实现较好的推荐效果 大部分都将
  • 读书思考:步步惊心的《技术陷阱》

    技术陷阱 这本书450页 43万字之巨 信息量密密麻麻 采集的资料极其丰富 复习了一遍大停滞 大分流 大平衡 大逆转时代 并展望未来 看完了有很多想法 随手写了下来 希望不是蹭热点 一 时间折半加速 忽略人类起源到中世纪的万年大停滞 175
  • unity 调用 .dll 或 .so时遇到的问题

    1 32位的 dll 无法在64位的unity编辑器下运行 System DllNotFoundException xxx 64位的程序运行32位的dll是会报这种错 2 Failed to load Assets Plugins xxx
  • 个人网站实现微信扫码登录

    个人网站实现微信扫码登录 效果图 外链图片转存失败 源站可能有防盗链机制 建议将图片保存下来直接上传 img kzSrNgiv 1685034480658 https img ggball top picGo 动画 gif 开发背景 为什么
  • javascript canvas 模拟mac最小化

    文章是别人写的 不是我自己的 链接忘记了
  • 【用JS自制表格软件玩数据】4. 行列计数器的实现

    渲染单元格 列计数器 原理 步进器 字符的运算表 源码 当写完本系列后 我会把源代码分享出来给大家 本课程也会持续更新与矫正 欢迎留言指正 前面已经设计了一个底层渲染类 现在准备在这个底层类的基础上 构建一个渲染单元格的模块 列计数器 通常
  • 去中心化时代的创作者经济

    所谓创作者经济 具体是指利用各种互联网工具 由个人或团体进行内容创作 分发及一系列与创作者相关服务下产生的经济收益 这一概念也主要在当前的 web2互联网时代 并且有很多鲜明的案例凸显出了创作者经济的强大潜力 像我们熟知的抖音 哔哩哔哩等都
  • android后台获取当前屏幕截图(screencap.cpp修改)

    本文基于android6 0 首先找到screencap在Android源码中的位置 若不清楚 可以通过在android目录下通过命令find namescreencap cpp 本文直接给出路径 android frameworks ba
  • 开源的C++静态分析工具

    开源的C 静态分析工具 Java有一些非常好的 开源的静态分析工具 如FindBugs Checkstyle和PMD 这些工具易于使用 有益于开发 能运行于多种操作系统而且还免费 商业级的C 静态分析工具产品有Klocwork Gimpel
  • Anaconda命令总结

    Anaconda搭建python学习环境 由于最近打算入坑机器学习 发现很多项目都会用到一些相同的包 每次都要到导入太麻烦了 而Anconda中的conda包管理工具可以提供一套通用的环境 可以极大地提高开发效率 本文主要介绍Anacond
  • idea使用sonarqube对项目代码检测

    idea使用sonarqube对项目代码检测 1 sonarqube的安装 参考网上教程安装即可 2 在本地maven配置文件中配置上安装好的sonarqube相关信息
  • linux学习文档

    汇总 链接 http pan baidu com s 1pLk8SSr 密码 p6b6 如有帮助 还请不吝 推荐 1 1 2序和硬件基础 pdf 链接 http pan baidu com s 1kVFjoTh 密码 powh 2 3中断机
  • Ubuntu安装NVIDIA 显卡驱动

    文章目录 前言 一 基本概念 二 操作步骤 1 显卡硬件型号 2 安装驱动 总结 前言 NVIDIA Nvidia Corporation n v di 港称乎为NVIDIA 台湾与香港译为辉达 中国大陆译为英伟达 创立于1993年1月 是
  • 使用JavaScript在水效果中创建动画粒子

    Water simulation with javascript Today we continue JavaScript lessons and our article will about using js in modeling of
  • ES6module

    开发规范 声明式函数应设置为常量 对象尽量静态化 一旦设置不得随意添加新的属性 或者使用Object assign 默认导出一个对象用大驼峰 函数的默认值 function test a b bool false console log b