(一)可以使用标签对不支持或者未开启java script 的浏览器用户进行提示,当java script 可以启用的状态下不会显示该标签内容。
<html>
<head>
<title>Example</title>
<script type="text/javascript" defer="defer" src="example.js"></script>
</head>
<body>
<noscript>
<p>本页面需要浏览器支持(启用)JavaScript</p>
</noscript>
</body>
</html>
(二)第三章笔记整理
(1) typeof操作符
typeof操作符可以检测变量的数据类型。然后返回相应字符串(undefined,boolean,string,number,object,function),例如:
var message = "some string"
alert(typeof(message)); //"string"
alert(typeof(95)); //"number"
注意typeof不是函数。他只是一个操作符,因此实际上alert(typeof message)也是可以的。
(三)函数
(1)参数的理解。在ECMAscript函数中参数在内部是用一个数组来表示的。函数接收到的始终是这个数组,而不关系数组里面装的是什么。我们可以通过arguments来获取参数。如:
<script>
/*
function sayHi(name,message){
alert(name+":"+message);
}
*/
function sayHi(name,message){
alert(arguments[0]+":"+argument[1]);
}//二者的效果是一样的
sayHi("lisa","hello");
</script>
(2)在JavaScript中是没有重载的概念的。如果定义两个名字相同的函数那么该名字只会属于后定义的函数,但是由于JavaScript中对函数的参数的个数不做限制。因此可以通过检查传入参数的类型和数量进行检查并做出不同的反应。模仿方法的重载,如:
function doAdd(){
if(arguments.length == 1 ){
alert(argument[0]+10);
}else if(arguments.length == 2){
alert(arguments[0]+arguments[1]);
}
}
doAdd(10); //20
doAdd(30,20); //50
(3)检测类型
a.在检测基本类型的时候可以使用typyof操作符
b.在检测引用类型的时候,可以使用instanceof操作符,语法为
result = variable instanceof constructor
如果变量是给定引用类型的实例,就会返回true,如果使用instance检测基本类型的时候,返回的都是false,因为基本类型不是对象。例如:
alert(person instanceof Object)//true
(4)垃圾收集机制
JavaScript中具有自动垃圾收集机制。
(a)标记清除:JavaScript中最常用的一种方式。垃圾收集器在运行时会给存储在内存中的所有变量都加上标记,然后他会去掉环境中的变量以及被环境中的变量引用的变量的标记,而在此之后再被加上标记的变量将被视为准备删除的变量,原因是环境中的变量已经无法访问到这些变量了,最后垃圾收集器完成内存清除工作,销毁那些带标记的值并回收他们所占用的内存空间。