从今天开始,要认真学习javascript啦。接下来将有一系列的关于javascript的学习笔记。
day1.
javascript简介
先大致了解下所谓的javascript,如下图:
javascript的实现主要由三个部分组成,即ECMAScript、文档对象模型以及浏览器对象模型。
ECMAScript
ECMAScript是javascript的核心部分,主要规定了javascript的语法、类型、语句、关键字、保留字、操作符和对象等。
文档对象模型(DOM)
文档对象模型将整个页面映射为一个多层的节点结构。整个页面其实就是由多个节点组成的一个树形结构,根据DOM给的api,可以实现对任何节点的删除、添加、替换已经修改等操作。
浏览器对象模型(BOM)
浏览器对象模型支持访问和操作浏览器窗口或框架。通过BOM可实现与浏览器窗口/框架的交互。
使用javascript
有两种方式可以在页面中引入javascript:
1.嵌入代码
<script type="text/javascript">
//code...
</script>
2.外部文件
<script type="text/javascript" src="javascript.js"></script>
推荐使用第二种方式引入javascript。
延迟脚本
<script>标签有个可选属性——defer。它表示脚本可以延迟到文档完全被解析和显示之后再执行。这个属性只对外部文件有效。即上面提到的第二种方式。
由于浏览器的兼容性等各个问题,通常更好的做法是将脚本放置在页面底部,而不使用defer属性。
异步脚本
<script>标签中的async属性表示可以立即下载执行脚本。使用了该属性的脚本不能保证其执行的先后顺序。即不一定按照它们出现在页面中的顺序依次执行。
建议异步脚本不要在加载期间修改DOM。
<noscript>元素
在浏览器不支持脚本或者脚本被禁用的情况下,可以使用<noscript>元素来显示提示内容。
<noscript>元素中的内容在启用脚本的浏览器中用于不会被看到。
<noscript>本页面需要浏览器支持javascript。</noscript>
注意点
1.在javascript代码中不能直接出现“</script>”
当javascript代码中直接出现“</script>”时,浏览器会认为是</script>结束标签,从而产生错误。
正确的做法是:使用转义字符将“</script>”写成如下形式"<\/script>";或者将“</script>”拆分成两个字符串也行。
2.在不使用defer和async属性的情况下,所有脚本都是按照它们在页面中出现的顺序依次被解析的。
3.可以使用如下格式来实现在XHTML中使用javascript
<script type="text/javascript">
//<![CDATA[
//code...
//]]>
</script>