设为首页收藏本站 |天气与日历| 2025-07-02 星期三 05:00:00 乙巳(蛇)年 六月初八 卯时
     
切换到窄版

私人站点

 找回密码
 立即注册
搜索
查看: 129|回复: 0

严格模式和ES6模块化

[复制链接]

954

主题

954

帖子

3879

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3879
发表于 2022-6-3 20:38:01 | 显示全部楼层 |阅读模式
严格模式:
http://javascript.ruanyifeng.com/advanced/strict.html
“use strict”
严格模式主要有以下限制。

- 变量必须声明后再使用

- 函数的参数不能有同名属性,否则报错

- 不能使用`with`语句

- 不能对只读属性赋值,否则报错

- 不能使用前缀 0 表示八进制数,否则报错

- 不能删除不可删除的属性,否则报错

- 不能删除变量`delete prop`,会报错,只能删除属性`delete global[prop]`

- `eval`不会在它的外层作用域引入变量

- `eval`和`arguments`不能被重新赋值

- `arguments`不会自动反映函数参数的变化

- 不能使用`arguments.callee`

- 不能使用`arguments.caller`

- 禁止`this`指向全局对象

- 不能使用`fn.caller`和`fn.arguments`获取函数调用的堆栈

- 增加了保留字(比如`protected`、`static`和`interface`)

ES6模块化
VUE 使用了ES6 的模块化

http://es6.ruanyifeng.com/#docs/module

总结:

- CommonJS 模块输出的是一个值的拷贝,ES6 模块输出的是值的引用;
- CommonJS 模块是运行时加载,ES6 模块是编译时输出接口;
- ES6 的模块自动采用严格模式,不管你有没有在模块头部加上`"use strict";`;
- ES6 模块之中,顶层的`this`指向`undefined`;CommonJS 模块的顶层`this`指向当前模块;


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|编程站点 ( 冀ICP备2023028127号-2 )|友链申请|

GMT+8, 2025-7-2 05:00 , Processed in 0.089641 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表