征服《JavaScript高级程序设计(第3版)》之路 => 第一天,第1、2章
作为一名不爱读书之人的自我救赎 ╮(╯▽╰)╭ 。以前所有的知识几乎都是从各大学习网站的视频来的,大都会带少量讲课老师自己的了解,个人认为,这样有助于快速入门,由于老师在讲课时,还会带少量个人经验,对于以后的开发也会很有帮助,但是,也会有少量由于带了个人了解而导致的 `二手货` 知识传达上的了解偏差,所以最终,我还是回到了这本javascript经典之作上,从基础上学起。
这个系列的笔记就是看看我能不能坚持把这本书读完,每天打卡;再顺便记录一下,本书中与我之前的了解有些偏差的地方,以及少量由于原本就很菜,所以记不太清,但是又很重要的点( ╮(╯▽╰)╭ 大概就是整本书吧 )
由于看得比较细,所以可能其中会有少量完全用不到的知识整理出来,但是for fun嘛
如有错误,欢迎指正。如有建议,欢迎探讨。如有益处,,,不存在的。
第 1 章 JavaScript简介
(这个每门入门课程都不会错过,但我又总是`不小心`错过的章节 ╮(╯▽╰)╭ )
JavaScript 组成
第 2 章 在HTML中使用JavaScript
书上提到两种办法,都用<script>,一个是src属性引入外部文件,一个是内嵌,直接写在标签内部。
作为能操纵节点的DOM大神,自然也能createElement,来手动增加script标签,实现外部脚本或者嵌入脚本。
HTML4.01 为<script>定义了 6个可选的属性
注:(1)嵌入脚本不能在代码中出现 `</script>`,可以通过转义字符 `/` 处理。
<script>
alert(`</script>`);alert(`<\/script>`);</script>
alert(`</script>`);?alert(`<\/script>`);
(2)不能省略</script>。
(3)有src属性的<script>元素中无内嵌代码,否则内嵌代码会被忽略。
(4)外部脚本就是把代码下载到当前页面中运行,所以下载完后相当于嵌入式js,
????????所以在下载和解析外部脚本的过程中,页面解决会暂时中止。
*(5)其实,外部js文件的.js扩展名是不必须的,不过惯例都带有扩展名。
? ? ? ? 书本原话是 `由于浏览器不会检查包含JavaScript的文件的扩展名。这样一来,使用JSP、PHP或者其余服务器端语言动态生成JavaScript代码也就成为了可能。但是,服务器通常还是需要看扩展名决定为响应应用哪种MIME类型。假如不适用.js扩展名,请确保服务器能返回正确的MIME类型`?
? ? ? ? 我还没有遇到过这种情况。。。有例子的可以分享看看。
(6)<script>的src属性可以是指向外部域的完整URL,相似<img>,
? ? ? ? 但是,要小心,以防恶意代码,最好是个信赖的外部域。
(7)js代码全放在<head>中,影响页面显示;js代码全放在<body>尾部,影响页面操作。。。
? ? ? ? 书中给出,js代码尽量靠近body尾部,并且正确使用defer和async属性。
? ? ? ? 这件事,牵扯到了js性能优化的问题,所以我去搜了搜,参考:JavaScript性能—加载及执行
? ??????????减少 JavaScript 对性能的影响有以下几种方法:
? ? ? ? ? ? ? ? 1。将所有的<script>标签放到页面底部,也就是</body>闭合标签之前,这能确保在脚本执行前页面已经完成了渲染。
? ? ? ? ? ? ? ? 2。尽可能地合并脚本。页面中的<script>标签越少,加载也就越快,响应也越迅速。无论是外链脚本还是内嵌脚本都是如此。
? ? ? ? ? ? ? ? 3。采用无阻塞下载 JavaScript 脚本的方法:
? ? ? ? ? ? ? ?????1)使用<script>标签的 defer 属性和async属性;
? ? ? ? ? ? ? ????? 2)使用动态创立的<script>元从来下载并执行代码;
? ? ? ? ? ? ? ? ????3)使用 XHR 对象下载 JavaScript 代码并注入页面中。
? ? ? ? (正好也搜到了图书馆里有关于高性能js的书,也许打卡的下本就是《?高性能网站建设指南:前台工程师技能精髓?》这个了)
(8)defer和async标记的外部脚本在执行时都不会影响页面的构造,都只适用于外部脚本文件。
? ? ? ? 1)最好只包含一个推迟脚本。由于现实中,推迟脚本不肯定会像HTML5规范要求的一样按照顺序执行 和 在DOMContentLoaded事件触发前执行。
? ? ? ? 2)确保异步脚本之间互不依赖。由于异步脚本不保证按先后顺序执行。
? ? ? ? 3)异步脚本不要在包含修改DOM的操作。
? ? ? ? 4)异步脚本肯定会在页面的load事件前执行,不肯定确定在DOMContentLoaded的前后。
(9)<noscript>
课外:MIME类型(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型,一种标准化的方式来表示文档的性质和格式。
? ??????浏览器通常使用MIME类型(而不是文件扩展名)来确定如何解决文档;因而服务器设置正确以将正确的MIME类型附加到响应对象的头部是非常重要的。如:text/javascript
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 征服《JavaScript高级程序设计(第3版)》之路 => 第一天,第1、2章