JavaScript高级程序设计【第五章】 读书笔记(一)

引用类型

1.Object类型

构建object类型的三种方法,注意最后一种方法的格式

	<script type="text/javascript">
		//构建对象的三种方法
		var object1 = new Object();
		var object3 = {};

		object1.name = "lee";
		object1.age = 22;
		object1.sex = false;

		object3.name = "sam";

		document.write(object1.name + object1.age);
		document.write(object3.name);

		//注意:,和最后一个属性后面没有,
		var object2 = {
			name : "alex",
			age : 23,
			sex : true
		//!!
		}
		document.write(object2.name + object2.sex);
	</script>

2.Array

2.1怪异的array,需要掌握构建数组的三种方法,打印数组的四种方法,join()方法,
<script type="text/javascript">
		//js数组的巨大差别,数组的值可以是任意类型
		//构建数组的三种方法
		var colors = new Array(20);
		var colors2 = new Array("lee", "sam", 22);
		var colors3 = [ "alex", 33 ];

		document.write(colors.length + "-" + colors2.length + "-"
				+ colors3.length);

		//js的数组length是可以更改的,在数组末尾添加元素的方法
		colors3.length = 4;
		document.write(colors3.length);
		colors3[colors3.length] = "amy";
		colors3[colors3.length] = "cai";

		document.write(colors3[3] + "-" + colors3[4] + colors3[5]);

		//遍历数组的四种方法,第四种略有不同,以及join()方法
		document.write("<br>");
		document.write(colors3);
		document.write("<br>");
		document.write(colors3.toString());
		document.write("<br>");
		document.write(colors3.valueOf());
		document.write("<br>");
		document.write(colors3.toLocaleString());

		//toLocaleString()的不同之处

		var boy = {
			toString : function() {
				return "alex1";

			}, //注意,号

			toLocaleString : function() {
				return "alex2";
			}
		}

		var girl = {
			toString : function() {
				return "amy1";

			}, //注意,号

			toLocaleString : function() {
				return "amy2";
			}
		}

		var persons = [ boy, girl ];
		document.write("<br>");
		document.write(persons.toString());

		document.write("<br>");
		document.write(persons.toLocaleString());
		//数组调用数组中每个元素的toLocaleString()
		document.write(persons.join("--"));
		//将遍历数组中以--分割
	</script>
2.2.js数组模拟数据结构,栈,队列。
	<script type="text/javascript">
		//数组的数据结构:栈、队列
		//栈,后进先出(注意另个方法)
		var boys = new Array();
		var v1 = boys.push("alex", "sam"); //入栈,并返回入栈后的数组容量	

		document.write("<br>");
		document.write(v1);
		document.write("push后<br>");
		document.write(boys);
		var v2 = boys.pop(); //出栈,并返回pop出的那项
		document.write("<br>");
		document.write(v2);
		document.write("pop后<br>");
		document.write(boys);

		//队列,就像排队,先进先出你懂得
		//注意方法shift()取出开头的元素,可以模拟队列
		//注意unshift()方法,给数组开头插入任意数组元素,并返回最新的数组长度
		var girls = [ "sam", "king", "xia" ];
		document.write("队列开始了<br>");
		document.write(girls);
		var v3 = girls.shift();
		document.write(v3);

		document.write("遍历开始了<br>");
		document.write(girls);

		document.write("unshift()开始了<br>");
		var v4 = girls.unshift("hello", "world");
		document.write(v4); //ie和firefox结果不一样,ie为未定义,ff为4
		document.write("<br>");

		document.write(girls);
	</script>
2.3.js数组的排序,掌握两种方法。
<script type="text/javascript">

		//数组排序方法 两种,函数的返回值,都是排序后的数组
		var ages = [ 1, 22, 3, 13, 10 ];
		document.write("<br>");
		document.write(ages);
		document.write("<br>");
		document.write(ages.reverse()); //不做任何判断,直接讲数组中的元素,反过来存放。

		//蛋疼的sort
		document.write("<br>");
		document.write(ages.sort()); //虽然是int类型的,但是依然调用元素的string进行比较

		//淡定的sort,还好可以sort可以传一个函数进去
		function compareInt(var1, var2) {
			return (var1 - var2);
		}
		document.write("<br>淡定的sort");
		document.write(ages.sort(compareInt)); //哥自己写了比较方法,不劳您大驾了

	</script>
2.4.对js数组的操作,掌握三种方法。
<script type="text/javascript">
		//操作方法  1.concat() 2.slice() 强大的3.splice()
		//复制数组1接收当前数组,2把参数中的项台添加到数组末尾,不是引用复制哦
		var girls2 = [ "sam", "king", "xia" ];
		var girls3 = girls2.concat("yellow", "black");
		document.write(girls2 + "--" + girls3);
		var girls4 = girls2.slice(2, 3); //取数组中的指定元素,组成新的数组

		//并不是复制数组到新数组,而是在原有数组上进行操作
		//返回的是含有改变元素后的数组
		var man = [ "sam", "king", "xia" ];
		man.splice(1, 3);
		//var man2 = man.splice(2, 0, "hello","boy");
		//var man3 = man.splice(2, 1, "hello","boy");
		document.write("<br>");
		document.write(man);
		document.write("<br>");
		document.write(man1 + "--" + man2 + "--" + man3);
	</script>

第一次用writer写随笔,希望代码着色正常。

posted @ 2011-05-05 00:13  NeverLand2011  阅读(287)  评论(2编辑  收藏  举报