// counter.js
let counter = 10;
export default counter;
// index.js
import myCounter from "./counter";
myCounter += 1;
console.log(myCounter);
引入的模块是 只读 的: 你不能修改引入的模块。只有导出他们的模块才能修改其值。当我们给myCounter增加一个值的时候会抛出一个异常: myCounter是只读的,不能被修改
delete操作符返回一个布尔值: true指删除成功,否则返回false. 但是通过 var, const 或 let 关键字声明的变量无法用 delete 操作符来删除。
name变量由const关键字声明,所以删除不成功:返回 false. 而我们设定age等于21时,我们实际上添加了一个名为age的属性给全局对象。对象中的属性是可以删除的,全局对象也是如此,所以delete age返回true.
2.
var b = 10;
(function b(){
b = 20;
console.log(b);
})();
打印的是 function b(){b=20; console.log(b)};
// 关于作用域 立即执行函数b, 函数变量名称b 的作用域只局限在这个函数内,
// 在非匿名自执行函数中,函数变量为只读状态无法修改;
3 BFC block formatting context
通俗一点来讲,可以把 BFC 理解为一个封闭的大箱子,箱子内部的元素无论如何翻江倒海,都不会影响到外部
只要元素满足下面任一条件即可触发 BFC 特性:
- body 根元素
- 浮动元素:float 除 none 以外的值
- 绝对定位元素:position (absolute、fixed)
- display 为 inline-block、table-cells、flex
- overflow 除了 visible 以外的值 (hidden、auto、scroll)
BFC 特性及应用
- 同一个 BFC 下外边距会发生折叠( 比如 Margin 重合会折叠)
- BFC 可以包含浮动的元素(它将清除浮动)
- BFC 可以阻止元素被浮动元素覆盖 (浮动元素会遮盖普通文挡流, 不会遮盖BFC元素 )