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写随笔,希望代码着色正常。