js 学习笔记---基本概念

早已接触javascript多年之后,竟然还有这些概念混淆不清,毫不知情,说出来真实无地自容 !

1、使用严格模式,“use strict”,虽然不适用,但是要知道,以免别人使用时,碰到后摸不着头脑!

2、js只有五中基本类型和一种复杂类型,Undefined,String,Number,Boolean,Null 和Object。typeof 返回的都是小写类型,e.g: j null == 'object'

3、var 声明变量未初始化时,变量就是undefined。 null 是一个指向空对象的指针。所以,typeof null = 'object'. 但是undefined派生自null。 null==undefined 是true


5、Object是所有对象的基础,每个对象都具有下列属性和方法:constructor,hasOwnProperty(propertyName)-是否存在某属性,isPrototypeOf(object)-检查传入的对象是否是对象的原型,propertyIsEnumerable(propertyName)-用于检查给定的属性是否能够使用for-in来枚举,toLocaleString(),toString(),valueOf()等。

6、理解参数问题:函数的参数是通过一个参数数组来接收参数的arguments。函数的定义和调用的时候,参数没什么关系,如果定义时写了参数就是可以显示的使用参数。否则,通过arguments[0],arguments[1]等依然可以实现相同的效果。调用时参数传递不够的,后面的自动赋值为undefined。如果多传递的可以通过下标访问arguments获得。还有重要的一点就是:arguments的值始终与对应命名参数的值保持同步,即可以通过改变arguments里的值,修改传递进来的参数值。


测试代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<script type="text/javascript" language="javascript">
	var testUndefined;
	alert(testUndefined);
	alert(testUndefined == null);
	alert(typeof null);
	alert(typeof undefined);
	var obj = {};
	obj.name = 'wch';
	obj.pwd =132;
	alert(obj.hasOwnProperty('name')+":"+obj.hasOwnProperty('id'));
	alert(obj.toString()+" : "+obj.valueOf()+' : '+obj.toLocaleString());
	alert(obj.propertyIsEnumerable('name')+' : '+obj.propertyIsEnumerable('pwd'));
	function sum(){
		var sum = 0;
		for(var i=0; i< arguments.length; i++){
			if(i==3){
				arguments[3] = 10;
			}
			sum+=arguments[i];
		}
		return sum;
	}
	alert(sum(1,2,3)+' : '+sum(10,20,30,60));
</script>
</body>
</html>


posted @ 2013-11-02 20:54  skyding  阅读(177)  评论(0编辑  收藏  举报