1.Array
function iniArray(){
// 1.比较标准的初始化方式,同时体现了JS其实也是OOP,也同时体现了作为弱数据类型不够严谨的一面,非常灵活的一面(数组长度可动态变化,类似于C#中
// 的List或者ArrayList甚至dictionary)
var studentNames = new Array();
studentNames[0] = "xiaPeng";
studentNames[1] = "wangHaiShan";
studentNames[2] = "wangHaiShan";
studentNames[3] = "chenJin";
studentNames[4] = "zhuYiYu";
studentNames[5] = "jiangFeng";
// 2.非常直接的初始化方式,在声明的同时赋初值,和C#不一样的是数组的外面的括号是中括号,而不是大括号
// var studentNames = ["xiaPeng","wangHaiShan","wangHaiShan","chenJin","zhuYiYu","jiangFeng"];
// 3.剑走偏锋的初始化方式,不推荐使用,只需要了解即可
// 虽然是同一个数组,但是语法上允许有不同的数据类型存储在同一个数组中,一般不建议这么做,毕竟一个数组最佳状态就是描述一个逻辑含义,而一个逻辑含// 义照理来说也不应该出现多个数据类型
// var studentNames = ["xiaPeng",123];
return studentNames;
}
function displayArray(){
var testArray = iniArray();
for ( var index = 0; index < testArray.length; index++ ){
document.write(testArray[index] + "<br/>");
}
}
function displayArrayMethodTest(){
var testArray = iniArray();
//利用第一个参数作为分隔符号来连接数组中各个元素,由于html的特性,可以将分隔符号设置为标签或者标签的一部分,从而达到快速展示数组的目的
//document.write(testArray.join("<br/>") + "<br/>");
//pop:删除最后一个元素,并将最后一个被删除的元素作为该函数的返回值,最终数组的长度也会相应减1
//document.write(testArray.pop() + "<br/>");
//document.write(testArray.join("<br/>") + "<br/>");
//push:添加一个或者多个新元素,并且返回填充新元素后数组最新长度
document.write(testArray.push("fangJing","sunWangShuang","fanLinLin","maGuoShuo") + "<br/>");
document.write("添加完新元素后的数组:<br/>" + testArray.join("<br/>") + "<br/>");
}
function iniPlanarArray(){
// 直接的初始化方式,也可以通过传统的遍历来进行赋值
// var names=[["liKe","yanXuJie","wangXiaoLe","luLingFei","shenZhongXing","zhangCheng","wuJiaoJian"],["xiaPeng","guGong","fangMin",
// "heZhengTian","fanJianHua","minXiaoZhong"]];
// return names;
var numbers = new Array();
var rowIndex = 5;
var colIndex = 5;
for ( var index = 0; index < rowIndex; index++ ){
numbers[index] = new Array();
for ( var count = 0; count < colIndex; count++ ){
// if(index == 0){
// numbers[index][count] = count + 1;
// }
// else{
// numbers[index][count] = numbers[index-1][count]+1;
// }
numbers[index][count] = index + count + 1;
}
}
return numbers;
}
function displayPlanarArray(){
var testArray = iniPlanarArray();
testArray.reverse();
// 遍历几维数组就应该内嵌几层循环,为了突然二维效果,我们将每一维显示成一行
// 处于同一个多维数组中的元素,每个元素的长度不一定要一致
for ( var index = 0; index < testArray.length; index++ ){
testArray[index].reverse();
for ( var count = 0; count < testArray[index].length; count++ ){
document.write("<div style='float:left;width:50px;'>" + testArray[index][count] + "</div>");
}
document.write("<br/>");
}
}
//1 2 3 4 5
//2 3 4 5 6
//3 4 5 6 7
//4 5 6 7 8
//5 6 7 8 9
//9 8 7 6 5
//8 7 6 5 4
//7 6 5 4 3
//6 5 4 3 2
//5 4 3 2 1
2.类对象类型的比较和获取
//类person
function Person(){
document.write("Person is constructor" + "<br/>");
}
//2. 会使用属性
// Person(); 将Person作为普通函数来对待
var tmpPerson = new Person(); //类名,用构造函数定义了一个类,这里用该类进行实例化对象
tmpPerson.name = "zhangSan";
tmpPerson.feeling = 80;
tmpPerson.money = 90;
// document.write(typeof tmpPerson + "<br/>");
// document.write(tmpPerson.constructor + "<br/>");
// document.write(tmpPerson["name"] + "<br/>");
/*var number = 80;
document.write(typeof number + "<br/>");
document.write(number.constructor + "<br/>");
var chars = "xiaPeng";
document.write(typeof chars + "<br/>");
document.write(chars.constructor + "<br/>");
document.write(typeof Person + "<br/>"); //对象名,将他作为对象名,来获取其类型和构造函数
document.write(Person.constructor + "<br/>");
//判断你是什么类型
if(tmpPerson instanceof Person){
document.write("tmpPerson is a Person" + "<br/>");
}
if(tmpPerson.constructor == Person){ //Person看做是构造函数的名字和对象的构造函数才有相等的可能性
document.write("tmpPerson is a Person" + "<br/>");
}
var tmpPersonTwo = new Person(); //类名,用构造函数定义了一个类,这里用该类进行实例化对象
tmpPersonTwo.name = "liSi";