Evernote Export
Edit

《红宝书阅读笔记》

CH2

  1. \<script\>元素
    1.1 向HTML页面中插入JavaScript的主要方法,就是使用\<script\>元素。这个元素由Netscape创造并在Netscape Navigator 2中首次实现。后来,这个元素被加入到正式的HTML规范中。HTML4.01中为\<script\>定义了下列六个元素。

    • async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。

    • charset:可选。表示通过src属性指定的代码的字符集。

    • defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。

    • languge:已废弃。

    • src:可选。表示包含要执行代码的外部文件。

    • type:可选。表示编写代码使用的脚本语言的内容类型(也称为MIME类型)。默认值为text\/javascript。

    1.2 使用\<script\>元素的方式有两种:
    ① 直接在页面中嵌入JavaScript代码;

    `<script type="text/jscript">
    function sayHi(){
    alert("Hi");
    }
    </script>`

    ② 包含外部的JavaScript文件。
    <script type="text/javascript" src="js/example.js"></script>
    需要注意的是,带有src属性的\<script\>元素不应该在\<script\>和\<\/script>标签之间再含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部文件,嵌入的代码会被忽略。
    另外,通过\<script\>元素的src属性还可以包含来自外部域的JavaScript文件。
    外部JavaScript文件带有的扩展名不是必须的,因为浏览器不会检查包含JavaScript的文件的扩展名。这样一来,就可以用其他服务器端语言动态生成JavaScript代码。
    无论如何包含代码,只要不存在defer和async属性,浏览器都会按照\<script\>元素在页面中出现的先后顺序对它们依次解析。

  2. 标签的位置
    传统的做法是将所有的\<script\>都放到\元素中,这样做的目的是把所有的外部文件的引用都放在相同的位置,这样做的缺点是只有\元素中包含的所有文件被下载之后才会开始呈现页面的内容。对于需要很多的JavaScript代码的页面来说,这会导致浏览器呈现的页面出现明显的延迟,而延迟期间的浏览器窗口会是一片空白。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Example HTML Page</title>
<script type="text/javascript" src="js/example1.js"></script>
<script type="text/javascript" src="js/example2.js"></script>
</head>
<body>
<!-- 这里放内容 -->
</body>
</html>

现在为了避免上述的页面空白的问题,现代Web应用程序一般都把JavaScript引用到放在\元素中页面内容的后面,如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Example HTML Page</title>
</head>
<body>
<!-- 这里放内容 -->
<script type="text/javascript" src="js/example1.js"></script>
<script type="text/javascript" src="js/example2.js"></script>
</body>
</html>

注:这样写笔记太慢了,我想简单一点写,一个知识点尽量用一句话概括。

  1. 延迟脚本
    \<script\>标签中的defer属性,表示脚本在执行时不会影响到页面的构造,相当于脚本会被延迟到页面解析完毕后再执行。有以下几个重点:

    • 在\<script\>标签中设置defer属性,相当于告诉浏览器立即下载,但延迟执行。

    • HTML5规范要求脚本按照它们出现的位置依次执行。因此多个延迟脚本,会依次执行,但现实中可能会有其他元素影响到延迟脚本的执行顺序,因此最好只包含一个延迟脚本。

    • defer属性只适用于外部脚本。

    • 将延迟脚本放在页面底部是最佳选择。

  2. 异步脚本
    \<script\>元素中的async,只适用于外部脚本文件,告诉浏览器立即下载文件,和defer不同的是标记为async的脚本,并不保证它们的先后顺序执行。

    • 因为不能保证两个脚本会依次执行,所以要确保两个脚本之间有依赖关系。

    • 指定async属性的目的在于不让页面等待两个脚本下载和执行,从而保证异步加载页面的其他内容。

    • 建议异步脚本不要在加载期间修改DOM。

    • 异步脚本一定会在load事件前执行,但可能会在DOMContentLoaded事件触发之前或之后执行。

    • 支持异步脚本的浏览器有Firefox3.6、S Safari5、Chrome。

    • 在XML中要将async属性设置成async=”async”。

  3. 嵌入代码与外部文件
    外部文件的JavaScript比嵌入式的JavaScript来说有以下三个优点:

    • 可维护性

    • 可缓存

    • 适应未来

  4. 文档模式看不懂
    文档模式通过doctype切换实现。

<!-- HTML 4.01 严格型 -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
----------
<!-- XHTML 4.01 严格型 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- H5 -->
<!DOCTYPE html>
  1. \<noscript\>元素
    被\<noscript\>元素包含的标签只有在浏览器不支持监本,或是脚本被禁用的情况下才出现。(\<script\>元素除外)

2019/6/30 22:40:43

%23%20%u300A%u7EA2%u5B9D%u4E66%u9605%u8BFB%u7B14%u8BB0%u300B%20%23%0A%23%23%20CH2%20%23%23%0A1.%20%5C%3Cscript%5C%3E%u5143%u7D20%20%20%0A%091.1%20%u5411HTML%u9875%u9762%u4E2D%u63D2%u5165JavaScript%u7684%u4E3B%u8981%u65B9%u6CD5%uFF0C%u5C31%u662F%u4F7F%u7528%5C%3Cscript%5C%3E%u5143%u7D20%u3002%u8FD9%u4E2A%u5143%u7D20%u7531Netscape%u521B%u9020%u5E76%u5728Netscape%20Navigator%202%u4E2D%u9996%u6B21%u5B9E%u73B0%u3002%u540E%u6765%uFF0C%u8FD9%u4E2A%u5143%u7D20%u88AB%u52A0%u5165%u5230%u6B63%u5F0F%u7684HTML%u89C4%u8303%u4E2D%u3002HTML4.01%u4E2D%u4E3A%5C%3Cscript%5C%3E%u5B9A%u4E49%u4E86%u4E0B%u5217%u516D%u4E2A%u5143%u7D20%u3002%0A%09-%20async%3A%u53EF%u9009%u3002%u8868%u793A%u5E94%u8BE5%u7ACB%u5373%u4E0B%u8F7D%u811A%u672C%uFF0C%u4F46%u4E0D%u5E94%u59A8%u788D%u9875%u9762%u4E2D%u7684%u5176%u4ED6%u64CD%u4F5C%uFF0C%u6BD4%u5982%u4E0B%u8F7D%u5176%u4ED6%u8D44%u6E90%u6216%u7B49%u5F85%u52A0%u8F7D%u5176%u4ED6%u811A%u672C%u3002**%u53EA%u5BF9%u5916%u90E8%u811A%u672C%u6587%u4EF6%u6709%u6548%u3002**%0A%09-%20charset%3A%u53EF%u9009%u3002%u8868%u793A%u901A%u8FC7src%u5C5E%u6027%u6307%u5B9A%u7684%u4EE3%u7801%u7684%u5B57%u7B26%u96C6%u3002%0A%09-%20defer%3A%u53EF%u9009%u3002%u8868%u793A%u811A%u672C%u53EF%u4EE5%u5EF6%u8FDF%u5230%u6587%u6863%u5B8C%u5168%u88AB%u89E3%u6790%u548C%u663E%u793A%u4E4B%u540E%u518D%u6267%u884C%u3002**%u53EA%u5BF9%u5916%u90E8%u811A%u672C%u6587%u4EF6%u6709%u6548%u3002**%0A%09-%20languge%3A%u5DF2%u5E9F%u5F03%u3002%0A%09-%20src%3A%u53EF%u9009%u3002%u8868%u793A%u5305%u542B%u8981%u6267%u884C%u4EE3%u7801%u7684%u5916%u90E8%u6587%u4EF6%u3002%0A%09-%20type%3A%u53EF%u9009%u3002%u8868%u793A%u7F16%u5199%u4EE3%u7801%u4F7F%u7528%u7684%u811A%u672C%u8BED%u8A00%u7684%u5185%u5BB9%u7C7B%u578B%uFF08%u4E5F%u79F0%u4E3AMIME%u7C7B%u578B%uFF09%u3002%u9ED8%u8BA4%u503C%u4E3Atext%5C/javascript%u3002%20%20%0A%0A%091.2%20%u4F7F%u7528%5C%3Cscript%5C%3E%u5143%u7D20%u7684%u65B9%u5F0F%u6709%u4E24%u79CD%uFF1A%20%20%0A%09%u2460%20%u76F4%u63A5%u5728%u9875%u9762%u4E2D%u5D4C%u5165JavaScript%u4EE3%u7801%3B%20%20%0A%09%09%0A%09%09%60%3Cscript%20type%3D%22text/jscript%22%3E%0A%09%09%09function%20sayHi%28%29%7B%0A%09%09%09%09alert%28%22Hi%22%29%3B%0A%09%09%09%7D%0A%09%09%3C/script%3E%60%0A%0A%09%u2461%20%u5305%u542B%u5916%u90E8%u7684JavaScript%u6587%u4EF6%u3002%20%20%0A%09%60%3Cscript%20type%3D%22text/javascript%22%20src%3D%22js/example.js%22%3E%3C/script%3E%60%20%20%0A%09%u9700%u8981%u6CE8%u610F%u7684%u662F%uFF0C%u5E26%u6709src%u5C5E%u6027%u7684%5C%3Cscript%5C%3E%u5143%u7D20%u4E0D%u5E94%u8BE5%u5728%5C%3Cscript%5C%3E%u548C%5C%3C%5C/script%3E%u6807%u7B7E%u4E4B%u95F4%u518D%u542B%u989D%u5916%u7684JavaScript%u4EE3%u7801%u3002%u5982%u679C%u5305%u542B%u4E86%u5D4C%u5165%u7684%u4EE3%u7801%uFF0C%u5219%u53EA%u4F1A%u4E0B%u8F7D%u5E76%u6267%u884C%u5916%u90E8%u6587%u4EF6%uFF0C%u5D4C%u5165%u7684%u4EE3%u7801%u4F1A%u88AB%u5FFD%u7565%u3002%20%20%0A%09%u53E6%u5916%uFF0C%u901A%u8FC7%5C%3Cscript%5C%3E%u5143%u7D20%u7684src%u5C5E%u6027%u8FD8%u53EF%u4EE5%u5305%u542B%u6765%u81EA%u5916%u90E8%u57DF%u7684JavaScript%u6587%u4EF6%u3002%20%20%0A%09%u5916%u90E8JavaScript%u6587%u4EF6%u5E26%u6709%u7684%u6269%u5C55%u540D%u4E0D%u662F%u5FC5%u987B%u7684%uFF0C%u56E0%u4E3A%u6D4F%u89C8%u5668%u4E0D%u4F1A%u68C0%u67E5%u5305%u542BJavaScript%u7684%u6587%u4EF6%u7684%u6269%u5C55%u540D%u3002%u8FD9%u6837%u4E00%u6765%uFF0C%u5C31%u53EF%u4EE5%u7528%u5176%u4ED6%u670D%u52A1%u5668%u7AEF%u8BED%u8A00%u52A8%u6001%u751F%u6210JavaScript%u4EE3%u7801%u3002%20%20%0A%09%u65E0%u8BBA%u5982%u4F55%u5305%u542B%u4EE3%u7801%uFF0C%u53EA%u8981%u4E0D%u5B58%u5728defer%u548Casync%u5C5E%u6027%uFF0C%u6D4F%u89C8%u5668%u90FD%u4F1A%u6309%u7167%5C%3Cscript%5C%3E%u5143%u7D20%u5728%u9875%u9762%u4E2D%u51FA%u73B0%u7684%u5148%u540E%u987A%u5E8F%u5BF9%u5B83%u4EEC%u4F9D%u6B21%u89E3%u6790%u3002%20%20%0A%0A2.%20%u6807%u7B7E%u7684%u4F4D%u7F6E%20%20%0A%u4F20%u7EDF%u7684%u505A%u6CD5%u662F%u5C06%u6240%u6709%u7684%5C%3Cscript%5C%3E%u90FD%u653E%u5230%5C%3Chead%3E%u5143%u7D20%u4E2D%uFF0C%u8FD9%u6837%u505A%u7684%u76EE%u7684%u662F%u628A%u6240%u6709%u7684%u5916%u90E8%u6587%u4EF6%u7684%u5F15%u7528%u90FD%u653E%u5728%u76F8%u540C%u7684%u4F4D%u7F6E%uFF0C%u8FD9%u6837%u505A%u7684%u7F3A%u70B9%u662F%u53EA%u6709%5C%3Chead%3E%u5143%u7D20%u4E2D%u5305%u542B%u7684%u6240%u6709%u6587%u4EF6%u88AB%u4E0B%u8F7D%u4E4B%u540E%u624D%u4F1A%u5F00%u59CB%u5448%u73B0%u9875%u9762%u7684%u5185%u5BB9%u3002%u5BF9%u4E8E%u9700%u8981%u5F88%u591A%u7684JavaScript%u4EE3%u7801%u7684%u9875%u9762%u6765%u8BF4%uFF0C%u8FD9%u4F1A%u5BFC%u81F4%u6D4F%u89C8%u5668%u5448%u73B0%u7684%u9875%u9762%u51FA%u73B0%u660E%u663E%u7684%u5EF6%u8FDF%uFF0C%u800C%u5EF6%u8FDF%u671F%u95F4%u7684%u6D4F%u89C8%u5668%u7A97%u53E3%u4F1A%u662F%u4E00%u7247%u7A7A%u767D%u3002%20%20%0A%60%60%60%20vbscript-html%0A%20%20%20%20%3C%21DOCTYPE%20html%3E%0A%20%20%20%20%3Chtml%3E%0A%20%20%20%20%09%3Chead%3E%0A%20%20%20%20%09%09%3Cmeta%20charset%3D%22utf-8%22%20/%3E%0A%20%20%20%20%09%09%3Ctitle%3EExample%20HTML%20Page%3C/title%3E%0A%20%20%20%20%09%09%3Cscript%20type%3D%22text/javascript%22%20src%3D%22js/example1.js%22%3E%3C/script%3E%0A%20%20%20%20%09%09%3Cscript%20type%3D%22text/javascript%22%20src%3D%22js/example2.js%22%3E%3C/script%3E%0A%20%20%20%20%09%3C/head%3E%0A%20%20%20%20%09%3Cbody%3E%0A%20%20%20%20%09%09%3C%21--%20%u8FD9%u91CC%u653E%u5185%u5BB9%20--%3E%0A%20%20%20%20%09%3C/body%3E%0A%20%20%20%20%3C/html%3E%0A%60%60%60%20%20%0A%0A%u73B0%u5728%u4E3A%u4E86%u907F%u514D%u4E0A%u8FF0%u7684%u9875%u9762%u7A7A%u767D%u7684%u95EE%u9898%uFF0C%u73B0%u4EE3Web%u5E94%u7528%u7A0B%u5E8F%u4E00%u822C%u90FD%u628AJavaScript%u5F15%u7528%u5230%u653E%u5728%5C%3Cbody%3E%u5143%u7D20%u4E2D%u9875%u9762%u5185%u5BB9%u7684%u540E%u9762%uFF0C%u5982%u4E0B%u6240%u793A%uFF1A%20%20%0A%0A%60%60%60%0A%20%20%20%20%3C%21DOCTYPE%20html%3E%0A%20%20%20%20%3Chtml%3E%0A%20%20%20%20%09%3Chead%3E%0A%20%20%20%20%09%09%3Cmeta%20charset%3D%22utf-8%22%20/%3E%0A%20%20%20%20%09%09%3Ctitle%3EExample%20HTML%20Page%3C/title%3E%0A%20%20%20%20%09%3C/head%3E%0A%20%20%20%20%09%3Cbody%3E%0A%20%20%20%20%09%09%3C%21--%20%u8FD9%u91CC%u653E%u5185%u5BB9%20--%3E%0A%20%20%20%20%09%09%3Cscript%20type%3D%22text/javascript%22%20src%3D%22js/example1.js%22%3E%3C/script%3E%0A%20%20%20%20%09%09%3Cscript%20type%3D%22text/javascript%22%20src%3D%22js/example2.js%22%3E%3C/script%3E%0A%20%20%20%20%09%3C/body%3E%0A%20%20%20%20%3C/html%3E%0A%60%60%60%20%20%0A*%u6CE8%uFF1A%u8FD9%u6837%u5199%u7B14%u8BB0%u592A%u6162%u4E86%uFF0C%u6211%u60F3%u7B80%u5355%u4E00%u70B9%u5199%2C%u4E00%u4E2A%u77E5%u8BC6%u70B9%u5C3D%u91CF%u7528%u4E00%u53E5%u8BDD%u6982%u62EC%u3002*%0A%0A3.%20%u5EF6%u8FDF%u811A%u672C%20%20%0A%09%5C%3Cscript%5C%3E%u6807%u7B7E%u4E2D%u7684defer%u5C5E%u6027%uFF0C%u8868%u793A%u811A%u672C%u5728%u6267%u884C%u65F6%u4E0D%u4F1A%u5F71%u54CD%u5230%u9875%u9762%u7684%u6784%u9020%uFF0C%u76F8%u5F53%u4E8E%u811A%u672C%u4F1A%u88AB%u5EF6%u8FDF%u5230%u9875%u9762%u89E3%u6790%u5B8C%u6BD5%u540E%u518D%u6267%u884C%u3002%u6709%u4EE5%u4E0B%u51E0%u4E2A%u91CD%u70B9%uFF1A%0A%09-%20%09%u5728%5C%3Cscript%5C%3E%u6807%u7B7E%u4E2D%u8BBE%u7F6Edefer%u5C5E%u6027%uFF0C%u76F8%u5F53%u4E8E%u544A%u8BC9%u6D4F%u89C8%u5668%u7ACB%u5373%u4E0B%u8F7D%uFF0C%u4F46%u5EF6%u8FDF%u6267%u884C%u3002%0A%09-%20%09HTML5%u89C4%u8303%u8981%u6C42%u811A%u672C%u6309%u7167%u5B83%u4EEC%u51FA%u73B0%u7684%u4F4D%u7F6E%u4F9D%u6B21%u6267%u884C%u3002%u56E0%u6B64%u591A%u4E2A%u5EF6%u8FDF%u811A%u672C%uFF0C%u4F1A%u4F9D%u6B21%u6267%u884C%uFF0C%u4F46%u73B0%u5B9E%u4E2D%u53EF%u80FD%u4F1A%u6709%u5176%u4ED6%u5143%u7D20%u5F71%u54CD%u5230%u5EF6%u8FDF%u811A%u672C%u7684%u6267%u884C%u987A%u5E8F%uFF0C%u56E0%u6B64%u6700%u597D%u53EA%u5305%u542B%u4E00%u4E2A%u5EF6%u8FDF%u811A%u672C%u3002%0A%09-%20%09defer%u5C5E%u6027%u53EA%u9002%u7528%u4E8E%u5916%u90E8%u811A%u672C%u3002%0A%09-%20%09%u5C06%u5EF6%u8FDF%u811A%u672C%u653E%u5728%u9875%u9762%u5E95%u90E8%u662F%u6700%u4F73%u9009%u62E9%u3002%0A%0A4.%20%u5F02%u6B65%u811A%u672C%20%20%0A%09%5C%3Cscript%5C%3E%u5143%u7D20%u4E2D%u7684async%uFF0C%u53EA%u9002%u7528%u4E8E%u5916%u90E8%u811A%u672C%u6587%u4EF6%uFF0C%u544A%u8BC9%u6D4F%u89C8%u5668%u7ACB%u5373%u4E0B%u8F7D%u6587%u4EF6%uFF0C%u548Cdefer%u4E0D%u540C%u7684%u662F%u6807%u8BB0%u4E3Aasync%u7684%u811A%u672C%uFF0C%u5E76%u4E0D%u4FDD%u8BC1%u5B83%u4EEC%u7684%u5148%u540E%u987A%u5E8F%u6267%u884C%u3002%0A%09-%20%u56E0%u4E3A%u4E0D%u80FD%u4FDD%u8BC1%u4E24%u4E2A%u811A%u672C%u4F1A%u4F9D%u6B21%u6267%u884C%uFF0C%u6240%u4EE5%u8981%u786E%u4FDD%u4E24%u4E2A%u811A%u672C%u4E4B%u95F4%u6709%u4F9D%u8D56%u5173%u7CFB%u3002%0A%09-%20%u6307%u5B9Aasync%u5C5E%u6027%u7684%u76EE%u7684%u5728%u4E8E%u4E0D%u8BA9%u9875%u9762%u7B49%u5F85%u4E24%u4E2A%u811A%u672C%u4E0B%u8F7D%u548C%u6267%u884C%uFF0C%u4ECE%u800C%u4FDD%u8BC1%u5F02%u6B65%u52A0%u8F7D%u9875%u9762%u7684%u5176%u4ED6%u5185%u5BB9%u3002%0A%09-%20%u5EFA%u8BAE%u5F02%u6B65%u811A%u672C%u4E0D%u8981%u5728%u52A0%u8F7D%u671F%u95F4%u4FEE%u6539DOM%u3002%0A%09-%20%u5F02%u6B65%u811A%u672C%u4E00%u5B9A%u4F1A%u5728load%u4E8B%u4EF6%u524D%u6267%u884C%uFF0C%u4F46%u53EF%u80FD%u4F1A%u5728DOMContentLoaded%u4E8B%u4EF6%u89E6%u53D1%u4E4B%u524D%u6216%u4E4B%u540E%u6267%u884C%u3002%0A%09-%20%u652F%u6301%u5F02%u6B65%u811A%u672C%u7684%u6D4F%u89C8%u5668%u6709Firefox3.6%u3001S%20Safari5%u3001Chrome%u3002%0A%09-%20%u5728XML%u4E2D%u8981%u5C06async%u5C5E%u6027%u8BBE%u7F6E%u6210async%3D%22async%22%u3002%20%20%0A%0A5.%20%u5D4C%u5165%u4EE3%u7801%u4E0E%u5916%u90E8%u6587%u4EF6%20%20%0A%09%u5916%u90E8%u6587%u4EF6%u7684JavaScript%u6BD4%u5D4C%u5165%u5F0F%u7684JavaScript%u6765%u8BF4%u6709%u4EE5%u4E0B%u4E09%u4E2A%u4F18%u70B9%uFF1A%20%20%0A%09-%20%20%u53EF%u7EF4%u62A4%u6027%0A%09-%20%20%u53EF%u7F13%u5B58%0A%09-%20%20%u9002%u5E94%u672A%u6765%20%20%0A%0A6.%20%u6587%u6863%u6A21%u5F0F%u770B%u4E0D%u61C2%20%20%0A%09%u6587%u6863%u6A21%u5F0F%u901A%u8FC7doctype%u5207%u6362%u5B9E%u73B0%u3002%0A%09%0A%60%60%60%20html%0A%3C%21--%20HTML%204.01%20%u4E25%u683C%u578B%20--%3E%0A%3C%21DOCTYPE%20HTML%20PUBLIC%20%22-//W3C//DTD%20HTML%204.01//EN%22%0A%22http%3A//www.w3.org/TR/html4/strict.dtd%22%3E%0A%0A----------%0A%0A%3C%21--%20XHTML%204.01%20%u4E25%u683C%u578B%20--%3E%0A%3C%21DOCTYPE%20html%20PUBLIC%20%22-//W3C//DTD%20XHTML%201.0%20Strict//EN%22%0A%22http%3A//www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd%22%3E%0A%3C%21--%20H5%20--%3E%0A%3C%21DOCTYPE%20html%3E%0A%60%60%60%20%20%0A7.%20%5C%3Cnoscript%5C%3E%u5143%u7D20%20%20%0A%09%u88AB%5C%3Cnoscript%5C%3E%u5143%u7D20%u5305%u542B%u7684%u6807%u7B7E%u53EA%u6709%u5728%u6D4F%u89C8%u5668%u4E0D%u652F%u6301%u76D1%u672C%uFF0C%u6216%u662F%u811A%u672C%u88AB%u7981%u7528%u7684%u60C5%u51B5%u4E0B%u624D%u51FA%u73B0%u3002%uFF08%5C%3Cscript%5C%3E%u5143%u7D20%u9664%u5916%uFF09%20%20%0A%0A2019/6/30%2022%3A40%3A43%20

《红宝书阅读笔记》

CH1

  1. JavaScript诞生于1995年.

  2. Java Script是一种专为与网页交互设计的脚本语言,由下列三个不同的部分组成:

    1. ECMAScript,由ECMA-262定义,提供核心语言功能;
    2. 文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
    3. 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
  3. ECMAScript是什么?

    ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的实现和扩展。

    简单点说它是一个定义脚本语言的标准,JavaScript和JScript都实现了它。

  4. 由ECMA-262定义的ECMAScript和Web浏览器没有依赖关系。Web浏览器只是ECMAScript实现可能的宿主之一。其他的宿主还有Node和Adobe Flash.

  5. 文档对象模型(DOM)
    当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。

    文档对象模型是针对XML但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点,这些节点有包含着不同类型的数据。

    HTML DOM 模型被构造为对象的树:

  1. 浏览器对象模型(BOW)
    浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器”对话”。

    浏览器对象模型(Browser Object Model (BOM))尚无正式标准。由于现代浏览器已经(几乎)实现了 JavaScript 交互性方面的相同方法和属性,因此常被认为是 BOM 的方法和属性。

    从根本上来讲,BOW只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的JavaScript扩展算作BOW的一部分。

    2019.06.21