1. javascript数组操作
function arrayTest(){
var array1=new Array();
var array2=[];]
var array3= new Array(1,2,3);
var array4=[1,2,3,4];
var array5=new Array(1,new Array(2,3),4);
alert(array[1][0]); //----à2
array4[99]=100; //javascript中的数组是可以动态改变的。
//数组可以连接-----concat
var array41= array4.concat(101,102,103);
var array42=array4.concat(104,105);
var array43=array4.concat(array4);//12341234
//数组可以分隔------join
var array44=array43.join(“”);//没变化
var array45=array43.join(“+”);//1+2+3+4+1+2+3+4
//数组可以返回某个段,原数组不变------slice
var slicearray1=array43.slice(0,3);
var slicearray2=array43.slice(4);//从下标4开始一直取到最后一个
var slicearray3=array43.slice(-2,-1);//从当前数组倒数第二个开始,一直取到当前数组倒数第一个之前。
//push,pop在数组尾部追加push,或弹出pop,改变原数组。
array43.push(200);
array43.push(201,202);
array43.push(array41); //concat是吧array41打开,以单个数存进去,形成一个整体,
而push则是原样加入,以多维数组形式保存。
var arraypop=array43.pop();//是把array43最后一个元素拿出来,给arraypop数组。
//unshift,shift在数组头部追加push,或弹出pop,改变原数组。
array43.unshift(array41);
array43.shift();
//reverse可以翻转数组里的元素。
array43.reverse();
//sort可以对数组中的元素进行排序,修改原数组的内同。
array43.sort();//按照字母序对数组中的数升序排列。
array43.sort(function(a,b){return a-b;});//按数值升序排列
//splice,可以删除数组中一部分元素。还可以在指定位置添加元素。
array43.splice(4,2);//以下标为4的删除2个。
array43.splice(4);//以下标为4的一直删到最后。//可以接收删除部分。
}
2. javascript创建对象。
//创建对象
var obj1=new Object();
var obj2={};
//增加属性
obj1.num=1;
obj1.str=”String”;
obj1.hello=function(){
alert(“hello!”);}
obj2.obj=obj1;
//访问属性
Alert(obj1.num);
Alert(obj2[“obj”][“num”])
//直接创建对象和方法
var obj3={
num:1,
str:”string”,
hello:function(){
alert(“hello”);
}
}
3. JSON数据格式
function jasonTest(){
//jason数据定义,数组返回正常,对象返回加括号。
var jason1=”[1,2,{“ + “a:123,b:’string,c:[100,101]’” + ”}]” ;
var jasonArray=eval(jason1);
var json2=”{“+”a:123,b:[1,2,3],c:function(){alert (/“aaa/”);}” + ”}”;
var jasonObject=eval(“(”+jason2+”)”);
}
4. 面向对象的javascript
类得定义
fumctionTeacher(){
}//不能区分类与其他方法的不同,建议用以下的定义方式,类名首字母最好大写
var Teacher= function(){
}
//定义一个Book类,function相当于构造函数。
var Book=function(name){
//定义公有的属性
this.name=name;
//定义公有的方法
this.getName()=function(){
return this.name;}
this.setName()=function(nname){
this.name=nname;
}
}
functionTest(){
var teacher=new Teacher();
alert (teacher instanceof Teacher);//teacher是否是Teacher的实例。返回true
var book1=new Book();
book1.setBook(“a”);
// javascript中的原型对象,function上都有原型对象,新定义的对象,就具有原型对象上的方法属性。
var proto= new Book.prototype;
proto.str=”string”;
proto.hello=function(){
alert(“hello”);
};
}
// 一种更为合适的类的定义
var Book=function(name){
//公有属性在内部定义
this.name=name;
}
//公有方法在原型对象上定义。
Book.prototype.setName=function(nname){
this.name=nnane;
}
Book.prototype.getName=function(){
return this.name;
}
//将公有方法写到类里面,合理的方法是:
var Book=function(name){
this.name=name;
if( typeof Book._init= =”undefined”){
Book.prototype.setName=function(nname){
this.name=nnane;
}
Book.prototype.getName=function(){
return this.name;
}
}
Book._init=true;
}