Object对象:
1、【Object对象】—-提供JavaScript对象通用的功能
1.1、使用格式:var obj=new Object( [value] ); alue为基本数据类型[ Number, Boolean ,String] 1.2、prototype 属性 | constructor 属性
代码演示:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JavaScript语言基础---对象</title>
</head>
<body>
<script type="text/javascript">
var obj=new Object( );
//1.2、Object的方法
alert(typeof(obj));//结果:object
alert(obj.toString());//结果:[ object Object ]
alert(obj.valueOf());//结果:[ object Object ]
//1.3、obj类似于show方法
function show(){
alert("hello,show");
}
alert(typeof(show) );
//1.4、toString()、toLocaleString()、valueOf()三个结果一样
alert("1 :"+show.toString());
alert("2 :"+show.toLocaleString());
alert("3 :"+show.valueOf());
</script>
</body>
</html>
out.js:
function println(arr){
document.write(arr+"<br>");
}
function print(arr){
document.write(arr);
}
String对象:
1、【String对象】—-可用于处理或格式化文本字符串以及确定和定位字符串中的子字符串。
2、String对象的创建方式:两种
★、var newString=new String([ "stringLiteral" ]); 【注意:】这种方式是克隆出一个新的String对象 ★、var newString="anystring";
<script type="text/javascript">
var str1="abc123";
var str2=new String("abc123");
println(str1);
println(str2);
</script>
3、【String对象中的方法 (部分方法) 】
★.anchor:在对象中的指定文本两端放置一个有 NAME 属性的 HTML 锚点。 ★.big:把 HTML <BIG> 标记放置在 String 对象中的文本两端。 ★.charAt( index ):返回指定索引位置处的字符,从0开始索引,超出范围返回空字符串。 ★.charCodeAt:返回一个整数,代表指定位置上字符的 Unicode 编码。 ★.fontsize:strVariable.fontsize(intSize) ★.fromCharCode:从一些 Unicode 字符值中返回一个字符串; 用法:String.fromCharCode([code1[, code2[, ...[, codeN]]]])。 ★.indexOf( substring [,subindex]):返回 String 对象内第一次出现子字符串的字符位置。 ★.lastIndexOf :返回 String 对象中子字符串最后出现的位置。strObj.lastIndexOf(substring[, startindex])
String对象部分方法代码演示:
<script type="text/javascript">
alert(str1.anchor("pos1"));//结果:<a name="pos1">abc123</a>
println(str1.big());//字号变大
println(str2.bold());//字体加粗
println(str2.charAt(12));//abc123 :c
println(str1.charCodeAt(0));//97
println(str1.concat());
println(str1.fixed());//按打印机格式
println(str1.fontcolor("#ff0000"));//设置字体颜色
println(str1.fontsize(20));//设置字体大小
var str=String.fromCharCode(99,100,101,104);
println(str);
println(str1.indexOf("c12", 0));//字串第一次出现的位置
println(str1.italics());//斜体
println(str1.lastIndexOf("c", 0));
//str1=str1.link("http://www.hncu.net");//设置str1超链接
println(str1);
println(str1.sub() );//下标,字体变小
println(str1.sup());//上标
println(str1.toUpperCase());//变大写
println(str1.toLowerCase());//表小写
println("str1:"+str1);
println(str1.substring(0, 2));//[0,2)之间的字串
</script>
length属性:
<script type="text/javascript">
//【length属性】
var str1="abc123";
println("str1.len:"+str1.length);
</script>
constructor属性:
<script type="text/javascript">
//【constructor属性】
var str="abc12";
alert(str.constructor);//【结果:】function String(){ native code] } ---js中的对象是用function来做的
alert(str.constructor==String);//【结果:】true
</script>
prototype属性:
功能:返回对象类型原型的引用
格式:String.protoype.自定义属性名 | 方法名=”value”| function(){ [ncode] };
案例1:【prototype用法演示】:给String原型对象添加一个我们写的属性
<script type="text/javascript">
String.prototype.name_1="Tom";
String.prototype.age_1="12";
var a="abc122";
println(a.name_1+","+a.age_1);
</script>
结果:
案例2:【 给String对象添加一个trim( str )函数】
<script type="text/javascript">
function trim(str){
var start=0;
var end=str.length-1;
while(start<=end && str[start]==" "){
start++;
}
while(start<=end && str[end]==" "){
end--;
}
return str.substring(start,end+1);
}
var s=" aa 11 ";
var res=trim(s);
lert("##"+res+"##");
/*符合题意要求,剪了括号,但是怎能才能将此trim()融合到对象中去?下次调用的时候直接用str.trim();*/
</script>
案例3:【给String原型对象添加一个我们写的trim()方法】
<script type="text/javascript">
String.prototype.trim=function(){
var start=0;
var end=this.length;//不知道是哪个对象的length,用this最合适
while(start<=end && this[start]==" "){
start++;
}
while(start<=end && this[end] ==" "){
end--;
}
return this.substring(start, end+1);
};
var b=" aa bb aa ";
println("b= "+b.trim());
</script>
案例4:【给String原型对象添加一个我们写的toCharAarray()方法】
<script type="text/javascript">
//4.3、【给String原型对象添加一个我们写的toCharAarray()方法】
String.prototype.toCharrArray=function(){
var chs=[];//声明一个数组
for(var i=0;i<this.length;i++){
chs[i]=this.charAt(i);//将this中的第i个字符赋给数组chs[i]
}
return chs;
};
//测试
var ar="abcdefjhl23141469";
var str=ar.toCharrArray();
println(str);
</script>
结果:
——
案例5:【给String原型对象添加一个reverse方法(翻转)】
<script type="text/javascript">
String.prototype.reverse=function(){
//【注意】:js函数内部是可以定义内部函数的,跟Java的内部类一样
function swap(arr,i, j){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
var arr=this.toCharrArray();
for(var i=0,j=arr.length-1;i<=j;i++,j--){
swap(arr,i,j);
}
return arr.join("");
};
var c="abcdefhijklmnop";
println(c.reverse());//结果:"ponmlkjihfedcba"
</script>
Array对象:
1、【作用】:提供对创建任何数据类型的数组的支持。
2、【创建方式】:
(1)、arrayObj=new Array( );
(2)、arrayObj=new Array( [size] );3、【注意】js中的数组相当于java中的数组和集合的综合。
4、【特点】
(1)、js中的数组长度可变,类型任意,相当于java中的—ArrayList array=new ArrayList( );
(2)、Array中为赋值的元素输出结果空。
——
5、创建Array对象方式代码演示:
<script type="text/javascript">
//创建方式:
//方式1:new Array( )
arrObj=new Array( );
arrObj[0]="hello,abc";
arrObj[1]=true;
arrObj[2]=3.1415;
arrObj[3]=100;
arrObj[5]='a';
println(arrObj);//结果:hello,abc,true,3.1415,100,,a
//方式2:new Array( [size] )
arrObj2=new Array( 5 );
arrObj2[0]="hiabc";
arrObj2[1]=false;
arrObj2[5]=3.1415;
println(arrObj2);//结果:hiabc,false,,,,3.1415
//方式3:new Array(element0...)
arrObj3=new Array("abc",100,3.1415,false);
arrObj3[6]="bbb";
println(arrObj3);//结果:abc,100,3.1415,false,,,bbb
//方式4:=[ element... ]
arrObj4=["JavaScript",'a',20.14];
arrObj4[5]="aabb";
println(arrObj4);//结果:JavaScript,a,20.14,,,aabb
//方式5:=[ ]
arrObj5=[];
arrObj5[0]="abc";
arrObj5[1]=3.1415;
println(arrObj5);//结果:abc,3.1415
</script>
——
6、Array对象中的方法:
【concat(Array args)】:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
<script type="text/javascript">
var arr1=["abc", 23.145, 111];
var arr2=[ -100,'z'];
var arrTemp1=arr1.concat(arr2,"fff");//将数组arr1、arr2、元素“fff”连接在一起返回新的数组
println(arrTemp1+" arrTemp1.len= "+arrTemp1.length);
</script>
【arrayObj.join(separator)】:返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。
<script type="text/javascript">
var arrTemp2=arrTemp1.join("#");
println(arrTemp2);
</script>
【arrayObj.pop( )】:移除数组中的最后一个元素并返回该元素。
<script type="text/javascript">
var a=["a","b","c",1,2,3];
println(a.pop());//3
println(a);//a,b,c,1,2
</script>
【arrayObj.push(Array args)】: 将新元素添加到数组最后,并返回数组的新长度值。
<script type="text/javascript">
var a2=["a","b","c",1,2,3];
println(a2.push("xyz"));//7
println(a2.push(a));//8 :把a整个数组当做一个元素加入到a2中
println(a2);
</script>
【arrayObj.shift( )】: 移除数组中的第一个元素并返回该元素。
<script type="text/javascript">
var a=["a","b",2,3];
println(a.shift());//a
println(a);//b,2,3
</script>
【arrayObj.unshift(Array start)】:将指定的元素插入数组开始位置并返回新数组的长度。
<script type="text/javascript">
var a=["a","b",2,3];
println(a.unshift("A"));//5
println(a);//A,a,b,2,3
</script>
【arrayObj.slice(start, [end])】:返回一个数组的一段。
<script type="text/javascript">
var b=[112,141,51,90,"aa","bb",22];
println(b.slice(1, 3));//141,51
</script>
【arrayobj.sort(sortfunction)】:返回一个元素已经进行了排序的 Array 对象。
其中sortfunction是来确定元素顺序的函数的名称,
如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。
注意:sortfunction函数必须返回负数,正数或者0。
<script type="text/javascript">
var c=["b","a","e","x","f"];
c.sort();
println(c);//a,b,e,f,x
c.sort(function(){
return 1;
});
println(c);//x,f,e,b,a
</script>
【arrayobj.splice(Number start, Number deletecount, Array items)】:
从一个数组中移除一个或多个元素,如果必要,
在所移除元素的位置上插入新元素,返回所移除的元素。
<script type="text/javascript">
var c=["b","a","e","x","f"];
println(c.splice(0, 3, "aa"));//返回的是移除的元素:b,a,e
println(c);//aa,x,f
</script>
——
7、把js中的Array包装成我们喜欢的队列或栈操作方式
<script type="text/javascript">
//7.1、队列
Array.prototype.addFirst=function(element){
return this.unshift(element);
};
Array.prototype.removeFirst=function(){
return this.shift();
};
//7.2、栈
Array.prototype.addLast=function(element){
return this.push(element);
};
Array.prototype.removeLast=function(){
return this.pop();
};
//测试
var b=["abc", "YES", 200, '&', false];
b.addFirst("aabbc");
b.removeFirst();
b.addLast("**sss**");
b.removeLast();
println(b);
</script>
8、自定义求数组中的最大值方法
<script type="text/javascript">
var a=[12,51,55,-90,-61,100,-9];
Array.prototype.getMax2=function(){
var max=0;
for(var i=0;i<this.length;i++){
if(this[max]<this[i]){
max=i;
}
}
return this[max];
};
println(a.getMax2());
</script>
Date对象:
1、【Date对象】—启用基本存储器并取得日期和时间
2、【创建方式】:(1)、dateObj=new Date( );
(2)、dateObj=new Date(dateVal);
(3)、dateObj=new Date(year, month, date[, hours[, minutes[, seconds[,ms]]]]);3、【注意】:year、month、date为必选项,后边的为可选项
——
4、创建方式:
<script type="text/javascript">
//创建方式1---获取当前的时间
var d=new Date( );
println(d);//Thu May 04 2017 15:48:42 GMT+0800 (中国标准时间)
println(d.toDateString());//【结果为日期】Thu May 04 2017
println(d.toLocaleTimeString());//【获取时间】下午3:50:40
//创建方式2---new一个固定的时间
var d2=new Date("2017/5/4");
println(d2.toDateString());//Thu May 04 2017
println(d2.toLocaleTimeString());//上午12:00:00
</script>
5、获得年、月、日、时、分、秒、毫秒
var d=new Date( );
//年
println(d.getFullYear());
//月
println(d.getMonth()+1);
//日
println(d.getDate());
//时
println(d.getHours());
//分
println(d.getMinutes());
//秒
println(d.getSeconds());
//毫秒
println(d.getMilliseconds());
计算昨天的日期是多少?
var d1=new Date();
var time=d1.getTime();//当前time
println(d1.toDateString());
time=time-1*24*60*60*1000;//昨天的time
var d2=new Date(time);//new出昨天的date
println(d2.toDateString());