严格模式

ES6 的模块自动采用严格模式,不管你有没有在模块头部加上"use strict";

严格模式主要有以下限制。

  • 变量必须声明后再使用
  • 函数的参数不能有同名属性,否则报错
  • 不能使用with语句
  • 不能对只读属性赋值,否则报错
  • 不能使用前缀 0 表示八进制数,否则报错
  • 不能删除不可删除的属性,否则报错
  • 不能删除变量delete prop,会报错,只能删除属性delete global[prop]
  • eval不会在它的外层作用域引入变量
  • evalarguments不能被重新赋值
  • arguments不会自动反映函数参数的变化
  • 不能使用arguments.callee
  • 不能使用arguments.caller
  • 禁止this指向全局对象
  • 不能使用fn.callerfn.arguments获取函数调用的堆栈
  • 增加了保留字(比如protectedstaticinterface

上面这些限制,模块都必须遵守。由于严格模式是 ES5 引入的,不属于 ES6,所以请参阅相关 ES5 书籍,本书不再详细介绍了。

其中,尤其需要注意this的限制。ES6 模块之中,顶层的this指向undefined,即不应该在顶层代码使用this

es6 模块的语法严格模式相关推荐

  1. es6 模块的语法概述

    概述 历史上,JavaScript 一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来.其他语言都有这项功能,比如 Ruby 的require.Pytho ...

  2. ES6模块体系及DDN区块链设计开发规范

    ES6模块体系及DDN开发规范 概述 得益于 ES6 和 TS的模块体系,DDN区块链可以快速拆解和迭代.没有这些模块化的基础,我们后面所有的工作都会受阻,可插拔.可视化.可配置等功能就成了一句空话, ...

  3. ES6 模块加载export 、import、export default 、import() 语法与区别,笔记总结

    ES6模块加载export .import.export default .import() 语法与区别 在 ES6 之前,社区制定了一些模块加载方案,最主要的有 CommonJS 和 AMD 两种. ...

  4. 模块打包之CommonJS与ES6模块比较初探

    Time: 20190920 模块是具有特定功能的组成单元,不同模块负责不同的工作,然后会以某种方式联系到一起,形成完整的程序逻辑. CommonJS CommonJS是2009年社区提出的,包含模块 ...

  5. 商城项目介绍以及ES6的新语法

    0.学习目标 了解电商行业 了解乐优商城项目结构 能独立搭建项目基本框架 能参考使用ES6的新语法 1.了解电商行业 学习电商项目,自然要先了解这个行业,所以我们首先来聊聊电商行业 1.1.项目分类 ...

  6. es6 混合commjs_详谈commonjs模块与es6模块的区别

    到目前为止,已经实习了3个月的时间了.最近在面试,在面试题里面有题目涉及到模块循环加载的知识.趁着这个机会,将commonjs模块与es6模块之间一些重要的的区别做个总结.语法上有什么区别就不具体说了 ...

  7. es6 --- 模块

    function foo(){var something = 'cool';var another = [1, 2, 3];function doSomething() {console.log( s ...

  8. 模块定义文件导出类_浓缩的就是精华——ES6模块精炼讲解

    概述 在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库, 和基于 CMD 规范的模块化库). ES6 引入了模块化,其设计思想是在编译时就 ...

  9. ES6模块的import和export用法总结

    ES6之前已经出现了js模块加载的方案,最主要的是CommonJS和AMD规范.commonjs主要应用于服务器,实现同步加载,如nodejs.AMD规范应用于浏览器,如requirejs,为异步加载 ...

最新文章

  1. 用GAN来做图像生成,这是最好的方法
  2. 【MyBatis】学习纪要六:动态SQL
  3. 5、Power View—图块与切片器的应用
  4. 网站图片多服务器选多大,网站上的图片一般多大合适
  5. 计算机应用基础试题号2007,2006-2007计算机应用基础期末试题(A卷).pdf
  6. java大数据开发工程师,面试题附答案
  7. 在SQLServer2005中使用全文搜索
  8. 一年工作经验的java面试题
  9. Linux基础-网络配置
  10. android控件缩放后居中,三大布局的基本摆放属性总结,以及imageVIew图片摆放的缩放问题...
  11. pycharm 改成中文亲测好用
  12. python设计教务管理系统_python实现教务管理系统
  13. AndroidImageSlider三分钟快速集成酷炫自动轮播广告
  14. 如何利用计算机打印较大的字,Word打印技巧:打印大字-word技巧-电脑技巧收藏家...
  15. 联想笔记本win10系统加装SSD固态硬盘,系统迁移流程
  16. matlab求26个字母的组合方式,26个字母识别 用matlab实现的
  17. Linux 知:find
  18. TOEFL口语——TASK4的答题方法(学术场景Academic Lecture)
  19. 高校挑选校园智能门锁指南,学校后勤管理者速看
  20. 路缘石滑模机脱离预制作业追赶施工效率

热门文章

  1. xfce 双击窗口标题栏无法最大化解决办法
  2. 数据中心实施服务器虚拟化前的十大思考
  3. linux安装软件时提示找不到镜像的问题:Couldn't resolve host 'mirrorlist.centos.org'
  4. SVN: Can't create session svn
  5. 写给自己看的三栏布局的演示
  6. 什么?你竟然还没有用这几个chrome插件? 1
  7. Flask插件---flask_script与flask_migrate
  8. Flutter 萌新高频问题(加班猿妈妈叫你回家吃饭了)
  9. 基于MHA+semi sync实现mysql数据库的高可用
  10. 数据库设计中常见表结构的设计技巧(转)