1. script标签中 integrity属性的作用
    2. crossorigin 属性如何携带凭据?
    3. defer属性的作用,defer属性加载的脚本执行顺序如何?
    4. async属性的作用,async属性加载的脚本执行顺序如何?
    5. JS动态加载脚本前,如何让浏览器预加载?

    🔑:

    1. integrity:可选。允许比对接收到的资源和指定的加密签名以验证子资源完整性(SRI,Subresource Integrity)。如果接收到的资源的签名与这个属性指定的签名不匹配,则页面会报错,脚本不会执行。这个属性可以用于确保内容分发网络(CDN, Content Delivery Network)不会提供恶意内容。
    2. crossorigin: 配置相关请求的CORS(跨源资源共享)设置。默认不使用CORS。crossorigin=”anonymous”配置文件请求不必设置凭据标志。crossorigin=”use-credentials”设置凭据标志,意味着出站请求会包含凭据
    3. defer:表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。

    按照它们出现的顺序执行,因此第一个推迟的脚本会在第二个推迟的脚本之前执行,而且两者都会在DOMContentLoaded事件之前执行(关于事件,请参考第17章)。不过在实际当中,推迟执行的脚本不一定总会按顺序执行或者在DOMContentLoaded事件之前执行,因此最好只包含一个这样的脚本。

    1. async:表示应该立即开始下载脚本,但不能阻止其他页面动作,比如下载资源或等待其他脚本加载。只对外部脚本文件有效。

    并不保证能按照它们出现的次序执行

    1. JS动态加载脚本前,如何让浏览器预加载?

    在文档头部显式声明它们:
    image.png

    参考答案:
    https://www.yuque.com/docs/share/5ec71236-9aa4-4047-a2f2-a63aee0a4f86?#