1、相同点
(1)、加载文件时不阻塞页面渲染;
(2)、对于inline的script无效;
(3)、使用这两个属性的脚本中不能调用document.write方法;
(4)、有脚本的onload的事件回调;
(5)、允许不定义属性值,仅仅使用属性名;
2、不同点
(1)、每一个async属性的脚本都在它下载结束之后立刻执行,同时会在window的load事件之前执行。所以就有可能出现脚本执行顺序被打乱的情况;
(2)、每一个defer属性的脚本都是在页面解析完毕之后,按照原本的顺序执行,同时会在document的DOMContentLoaded之前执行。
参考资料: script标签中async,defer两个属性的区别 http://www.studyofnet.com/news/1259.html