- 最好的做法是把
<script>
标签放在HTML文档的最后,</body>
标签之前。 - 现在大多数浏览器的脚本默认是Javascript,所以
<script>
标签中不用再包含传统的type="text/javascript"
属性。 - JS是一种解释性、弱类型语言。JS是区分大小写的语言。
- 注释:JS中常用的行注释是://,块级注释是/**/。
- 不推荐在JS中使用
<!---->
注释,虽然JS解释器对<!--
的处理与“//”一样,但它会把-->
视为注释的一部分。 var mood = "happy", age="20";
这种声明和赋值是最有效率的方法。因为这种组合在一起的语句,以减少整个脚本的执行时间。- 变量命名:较长的变量名可以适当插入下划线,如“my_first_teacher”。函数名、方法名和对象属性名采用驼峰法命名,如”firstClassName”。注意构造函数命名,采用全部首字母大写命名法,如“FirstSchool()”
- 变量作用域,可以用var关键字设定。如果某个函数中使用了var,那这个变量就被视为一个局部变量,它只存在于这个函数的上下文中。反之,没有使用var,则这个变量被视为一个全局变量,如果脚本里已经存在一个和它同名的全局变量,这个函数就会改变那个全局变量的值。
function square (num) {
sum = num * num; //此处未加var,sum是全局变量
return sum;
}
var sum = 50; //定义全局变量sum
var numbers = square(20); //运行函数,重新定义全局变量sum,会覆盖原来sum的值
console.log(sum); //输出400
function square (num) {
var sum = num * num; //定义局部变量sum
return sum;
}
var sum = 50; //定义全局变量sum
var numbers = square(20); //运行函数,会定义一个局部变量sum,但当函数运行结束,局部变量sum也会销毁
console.log(sum); //此时输出的是全局变量sum,输出50
- DOM中的“D”:一个网页就是一个文档对象。
- DOM中的“O”:JS中有三种对象,分别是用户自定义对象、内建对象(JS提供的对象,如Array,Object,Math和Date等)及宿主对象(由浏览器提供的对象,如window等,即BOM对象)。
- DOM中的”M:即是一个网页对应的一棵树,文档的一颗家谱树。
- 常用的三种节点类型:文本节点(textNode)、属性节点(attributeNode)和元素节点(elementNode);具体可以查看HTML中DOM解析篇1–nodeType\nodeValue\nodeName
- 获取元素的方法:
getElementById():返回一个对象object;
getElementsByTagName():返回一个对象数组;
getElementsByClassName():返回一个对象数组;该方法是HTML5 DOM中新增的方法,有部分浏览器还不适用,所以在使用前要记得检测该方法是否存在。
//下面的代码可以用已有的DOM方法实现getElementsByClassName()
function getElementsByClassName (node, classname) {
if(node.getElementsByClassName) {
//使用现有方法
return node.getElementsByClassName(classname);
} else {
var results = new Array();
var elems = node.getElementsByTagName("*");
for(var i=0; i<elems.length; i++) {
if(elems[i].className.indexOf(classname) != -1) {
results[results.length] = elems[i];
}
}
return results;
}
}
//查找document中,类名是tips的所有节点
var ss = getElementsByClassName(document, 'tips');
console.log(ss);
6.getAttribute()获取节点的属性,该方法不属于document对象,不能通过document对象调用,只能通过元素节点对象调用。
7.setAttribute()方法用来设置节点属性,同样不适用于document对象。注意:setAttribute()方法做出的修改不会反映在文档本身的源代码里。
因为DOM的工作模式:先加载文档的静态内容,再动态刷新,动态刷新不影响文档的静态内容。这正是DOM的威力:对页面内容进行刷新却不需要在浏览器里刷新页面。