1.Script 标签的defer 和 async 的区别:
defer : 同步加载。是在HTML解析完之后才会执行,如果是多个,按照加载的顺序依次执行。
async:异步加载。是在加载完成后立即执行,如果是多个,执行顺序和加载顺序无关。
2.同源与跨域:
什么是同源策略?
是指限制从一个源加载的文档和脚本如何与来自另一个源的资源进行交互。一个源是指主机名、协议和端口号的组合,必须相同。
3.JSONP原理:
利用Script标签的异步加载特性实现,给服务端传一个回调函数,服务器返回一个传递过去的回调函数名称的JS代码。
4.闭包:
当一个内部函数被其外部函数之外的函数所引用,就形成了闭包。
5.闭包有什么用?使用场景
当我们需要在模块中定义一些变量,并希望这些变量一直保存在内存中,并希望这些变量一直保存在内存中,但又不会“污染”全局变量时,就可以用闭包来定义这个模块。