征服《JavaScript高级程序设计(第3版)》之路 => 第一天,第1、2章

作者 : 开心源码 本文共2092个字,预计阅读时间需要6分钟 发布时间: 2022-05-12 共197人阅读

作为一名不爱读书之人的自我救赎 ╮(╯▽╰)╭ 。以前所有的知识几乎都是从各大学习网站的视频来的,大都会带少量讲课老师自己的了解,个人认为,这样有助于快速入门,由于老师在讲课时,还会带少量个人经验,对于以后的开发也会很有帮助,但是,也会有少量由于带了个人了解而导致的 `二手货` 知识传达上的了解偏差,所以最终,我还是回到了这本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章

发表回复