每天一个小知识

1. script标签的位置:① 放在body后面 ,先渲染页面

②推迟执行脚本defer <script defer src="../a.js"></script> ,脚本会在整个页面都解析完毕之后再加载a.js; defer适用于外部引入的文件。

③异步执行脚本async ,<script async src="example2.js"></script>

async和defer的区别:

如果script脚本都加了defer,那么会按照出现的顺序,第一个defer加载完再加载第二个。在页面渲染之后,DomcontentLoaded 事件之前。

如果script脚本都加了async,那么顺序是不确定的,谁先加载完谁先执行。DOMContentLoaded事件的触发并不受async脚本加载的影响

④动态加载脚本。createElement

2.如果浏览器不支持script脚本,那么 可以使用<noscript></noscript>标签 ,写在body标签里面。

3.

 let message; // 这个变量被声明了,只是值为 undefined 
// 确保没有声明过这个变量
// let age 
console.log(typeof message); // "undefined" 
console.log(typeof age); // "undefined"     
//这两个打印出来都是"undefined"。。所以后续我们实际上应该在声明变量的时候就给予初始值,否则后面判断不知道是没有声明还是没有初始化。。

4.

模板字面量 反引号,插值使用${value} 进行占位.插值${value} 会使用toString() 强制将value值转换成字符串。

`${ value } to the ${ exponent } power is ${ value * value }`;

 5.

class Bar {}
class Baz extends Bar {
static [Symbol.hasInstance]() {
return false;
}
}
let b = new Baz();
console.log(Bar[Symbol.hasInstance](b)); // true
console.log(b instanceof Bar); // true
console.log(Baz[Symbol.hasInstance](b)); // false    //判断b是否属于Baz的实例对象,由于Baz自定义了Symbol.hasInstance,
                                                     //所以导致这里返回的都是false
console.log(b instanceof Baz); // false

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值