Javascript内部类
基本概念
JS中本身提供了一些可以直接使用的类,这些类就是内部类。
主要有:
Array,Boolean,Date,Math,Number,String,RegExp
PS:因为所有类都是从Object类中继承而来的,所有上述内部类都有Object的属性和方法。
内部类的分类
静态类
基本语法:
类名.属性/方法
Math类
Math是静态类,提供了常用的数学函数和常数,这里写出几个常用的函数。
abs(x) 返回数的绝对值
ceil(x) 对一个数进行上舍入
floor(x) 对一个数进行下舍入
max(x,y) 求x,y中较大的数
min(x,y) 求x,y中较小的数
round(x) 对 x进行四舍五入
random() 一个大于0小于1的16位小数位的数字(含0但是不含1)
案例:
<script type="text/javascript">
var a=90.1;
//ceil 向上取整
//window.alert(Math.ceil(a));
//floor 向下取整
//window.alert(Math.floor(45.99));
window.alert(Math.round(Math.random()*100)); //随机显示1-100整数。
</script>
动态类
基本语法:
var v = new 类名(参数);
Date类
Date是动态类,提供了对时间的方法。
Date() 返回当前日期和时间
getDate() 从Date对象返回一个月中的某一天
getDay() 从Date对象返回一周中的某一天
getMonth() 从Date对象返回月份
getYear() 从Date对象返回年
getHours() 从Date对象返回小时数
getMinutes() 从Date对象返回分钟
getSeconds() 从Date对象返回秒数
toLocaleString(); 返回当地格式的时间
案例:
<script type="text/javascript">
//获取当前日期
var mydate=new Date();
window.alert(mydate.toLocaleString());
window.alert(mydate.getMonth()+1);
</script>
String类
String是动态类,提供了对字符串的操作。
indexOf() 返回某个字符串值在该字符串中首次出现的位置
split() 把字符串分割为字符串数组
substr() 提取取从start下标开始的指定数目的字符 //substr(start,length) 从start开始取,取出lenght个字符,如果不够取,则尽量的取,如果没有指定 lenght,那么返回的字符串包含从 start 到 stringObject 的结尾的字符。
substring() 提取字符串中介于两个指定下标之间的子串 //stringObject.substring(start,stop) 从start开始取,取到stop-1,如果stop参数省略,就代表返回的子串会一直到字符串的结尾。
charAt() 返回指定位置的字符
length 属性,可以得到字符串的长度
toString() js中所有内部对象的成员方法,作用是将对象中的数据转成某个格式的字符串,我们在实际运用中在详细介绍
match()/replace()/search() 正则表达式匹配
案例:
<script type="text/javascript">
var txt="h韩llo中国";
//document.write(txt.indexOf("worldr"));
//var arr=txt.split("");
//document.write(arr);
//substr(start,length) 从start开始取,取出lenght个字符,如果不够取,则尽量的取
//var sub=txt.substr(3,3);
//stringObject.substring(start,stop) 从start开始取,取到stop-1
//var sub=txt.substring(0,2);
//charAt(index) 表示取出第几个字符
//var sub=txt.charAt(3);
//window.alert(sub);
</script>
Array类
Array提供了对数组的操作,使用Array对象可以轻松的创建数组,并对数组进行删除、排序和合并等操作。
concat() 连接两个或更多的数组,并返回结果。
sort() 对数组的元素进行排序
toString() 把数组转换为字符串,并返回结果
pop() 删除并返回数组的最后一个元素
push() 向数组的末尾添加一个或更多元素,并返回新的长度
splice() 方法用于插入、删除或替换数组的元素
length 属性,可以得到数组中的元素个数
案例:
<script type="text/javascript">
//数组的创建
var arr=new Array();
//静态设置数据
arr[0]=23;
arr[1]="zs";
arr[2]=567;
//动态的添加
/* for(var i=0;i<3;i++){
arr[i]=window.prompt("请输入第"+(i+1)+"数");
}*/
//如何删除数组的某个元素
//删除第2个元素->下标为1
//arr.splice(1,1); //第一个1 表示删除第几个元素, 第二个1表示删除1个
//把一个新的数据"北京",添加到第1元素后面,第二个参数是0,代表插入
//arr.splice(1,0,"北京");
//遍历数组
document.write("***********<br/>");
for(var key in arr){
document.write(arr[key]+"<br/>");
}
</script>
PS:可以使用如下方法查看文档对象提供的方法和属性
<script type="text/javascript">
for(var key in window) // 可以将window替换成document之类的
document.write("<br/>"+key)
</script>
Boolean类
动态类,对布尔值的支持
toString() 根据Boolean对象代表的布尔值返回true或false字符串
valueOf() 返回Boolean对象中存放的原始布尔值
Number类
数字类,对数值类型的支持。
toString(x) 输出x进制字符串//x可以是2-36之间的一个数
toFixed(x) 输出一个四舍五入到小数点x位的字符串
案例:
<script type="text/javascript">
var n1=23;//<==> var n1=new Number(23);
window.alert(typeof(n1));
window.alert(n1.toString(10));
//toFixed();把一个数四舍五入到小数点的某一个位置.
var n=7/3;
window.alert(n.toFixed(4));
</script>
综合案例:
<html>
<head>
<script type="text/javascript">
// static
// Math
window.alert(Math.floor(4.5) + " " + Math.ceil(4.5) + " " + Math.round(4.5) + " " + Math.random());
// Dynamic
// Date
var date = new Date();
window.alert(date.toLocaleString() + " " + date.getFullYear() + "\\" + date.getMonth() + "\\" + date.getDay() + " " + date.getHours() +
":" + date.getMinutes() + ":" + date.getSeconds());
// String
var str1 = "abc|def|oop";
var arr = str1.split("|");
window.alert(arr);
var str2 = "abcdefg";
// bcd
var substr1 = str2.substr(1, 3);
// cde
var substr2 = str2.substring(2, 5);
window.alert("s1:" + substr1 + " s2:" + substr2);
var str3 = "adad";
// d
window.alert("s3:" + str3.charAt(3));
// 12
var str4 = "abc sca afa aaa";
window.alert("s4:" + str4.indexOf("aaa"));
// Array
// add
var arr2 = new Array();
arr2[0] = "zs";
arr2[1] = 10;
window.alert(arr2.length + " " + arr2);
arr2.pop();
window.alert(arr2.length + " " + arr2);
arr2.push("abcd");
window.alert(arr2.length + " " + arr2);
</script>
</head>
<body>
</body>
</html>
PS:《JavaScript权威指南》第三部分JavaScript核心参考对内部类讲得非常详细,w3school上的文档也不错。建议买一本《JavaScript权威指南》作为参考书。
----------参考《韩顺平.轻松搞定网页设计(html+css+js)》