javascript中的基本数据类型:
1、字符串—可以视为String对象来使用String对象的相关属性;
2、数值类型
3、布尔类型
特殊数据类型是:
<1>Null ——没有保存有效的数、字符串、boolean、数组或对象;
<2>Undefined ——表示对象属性不存在, 声明了变量但从未赋值。
相关概念解释:内建对象——javascript语言本身提供给程序员使用的对象;
javascript中与之对应的内建对象: 1、String对象 2、Number对象 3、Boolean类型
注:基本数据类型可以使用与之对应的内建对象的属性与方法,javascript会进行自动转换
一、String 对象——类似数组,可以看成索引从0开始的多个字符的集合;
属性:length——返回字符串中字符的个数,空格也是算一个字符;
例:var str=new String('我一定会成功!');
alert(str.length);
打印7
方法:1、charAt()——返回字符串中指定索引的字符,从0开始;
例:获取字符串中最后一个字符
var hello=new String('Hello World');
var c=hello.charAt(hello.length-1);
alert(c);
打印小写字母d
2、charCodeAt()——返回字符串中指定索引位置的字符在Unicode字符集中的编码值;
例:var str=prompt('Enter some text!','hello word');
var index=str.charCodeAt(0);//获取第一个字母在Unicode字符集中的编码值
document.write(index);
打印E的编码值为104 练习:使用该方法判断字符串中最后一个字符是大写字母、小写字母、数字或其他字符;
3、fromCharCode()——与上一方法相反,为String对象的一个静态方法,将一系列用逗号分隔的字符编码转换为字符串
例1:var mystr=String.fromCharCode(65,66,67,68); alert(mystr); 打印ABCD
例2:var mystr="";
for(var i=65;i<=90;i++){ mystr+=String.fromCharCode(i); } alert(mystr); 打印A到Z
4、indexOf()和lastIndexOf()—前者从字符串开始位置或指定位置由前向后查找第一次出现要查找的子串的索引;后者由后向前查找; 例:var str='ABCDEFGHIJKMNABCDEFGHIJKMN'; var i=str.indexOf('K');//10 var j=str.lastIndexOf('K');//23 alert(i+":"+j);
5、substr()和substring()—用来截取字符串中的子串,都有两个参数,第一个参数为起始位置,前者第二个参数为要截取的子串的长度,后者的第二个参数为子串的结束位置,不包括结束位置,其实
可以把二者的实现的效果是一样的,另外注意的是两个方法在不同版本的浏览器的支持上有点不同;
例1:var str='javascript';
var subStr1=str.substr(0,4);//此处的4为要截取的子串的长度
var subStr2=str.substring(0,4);//此处的4为子串的介绍位置,不包括结束位置
alert(subStr1+"---"+subStr2); 例2:获取浏览器当前加载的文件的名称
var path=window.location.href;
var filename=path.substring(path.lastIndexOf('/')+1);
alert(filename);
6、toLowerCase()和toUpperCase()—前者转换为小写,后者转换为大写
二、Number对象 常用方法:toFixed(n)——保留指定小数位数的结果,并四舍五入; 例:var num=new Number(880820.201822); //var num=new Number('880820.201822');//两种创建对象的效果一样 var newNum=num.toFixed(3); alert(newNum);//打印880820.202 或(数字也可这么操作):alert(880820.201822.toFixed(3));//打印结果一样
三、Math对象——全局对象,javascript将自动创建,提供很多算术运算功能和数值操作方法
属性:
1、Math.PI 圆周率(3.141592653589793) 常用数学方法:
1、abs(n)——求传入参数的绝对值
2、ceil(n)——向上求大于或等于n的最小整数
例:var num=Math.ceil(1.01);//num=2
var num2=Math.ceil(-8.3);//num2=-8
3、floor(n)——与2相反,向下求等于或小于n的最大整数
4、round(n)——求整数,四舍五入 注意:还有一个parseInt(n)方法,用来取整数部分,即取小数点左边的部分,但它不是Math对象的方法,是内置对象;
5、random()——返回0到1之间的整数,包含0不包括1(0<=x<1);
例:模仿掷骰子产生十个随机数
var throwCount,randomNum;
throwCount=10;
for(var i=0;i<throwCount;i++){
randomNum=Math.floor(Math.random()*6+1);
document.write(randomNum+"\t");
}
结果:随机打印10个1到6的数字
6、pow(n,m)——求幂,表示n的m幂;
例:var num=Math.pow(10,2);
alert(num);//打印100;
四、Array对象
属性: length——数组长度
例:var list=new Array();
list[0]='中';
list[4]='国';
list[9]='强';
alert(list.length);//打印10 常用方法:
1、concat()——连接两个数组,得到连接后的新的数组对象
例:var array1=new Array(1,2,3,4,5);
var array2=new Array(6,7,8,9);
var newArray;
newArray=array1.concat(array2);//123456789
//array1=array1.concat(array2);//123456789
array2=array1.concat(array2);//123456789
由此可看出:一个数组赋给另外一个数组时将会被覆盖,其实就是变量重新赋值;
2、slice(start,end)——获取数组中的部分数组到新的数组,包括起始位置,不包括结束位置
例:var array1=new Array('中','华','人','民','共','和','国');
var array2=array1.slice(2,4);
alert(array2);//人,民
3、join()——数组转换为字符串,可指定连接符 例:var country=new Array('china','japan','USA'); var strCountry=country.join('<br/>'); document.write(strCountry);//china<br/>japan<br/>USA
4、sort()——按Unicode字符编码升序排列
5、reverse()——反转数组中的元素
例:实现字母的升序、降序排列
var array1=new Array('E','D','C','B','A');
var tmp=prompt('请输入排列顺序(1升序,2降序)','1');
if(tmp==1){
array1.sort(); document.write(array1);
}else if(tmp==2){
array1.sort();
array1.reverse();
document.write(array1);
}else{
document.write('输入错误,请重试!');
}
五、Date对象——用于日期、时间的处理,可转换为字符串
1、创建Date的对象的多种方法:
a、var date1=new Date();//包含当前日期和时间 //参数为距离格林威治标准时间的毫秒数,很少使用
b、var date2=new Date(4583538583434); //参数为有效的日期格式,推荐一下参数传递形式,其他格式可能有兼容性问题
c、var date3=new Date('8 May 2011'); //参数为年月日时分秒
d、var date4=new Date(2011,5,8,12,54,34);
2、获得日期的方法
a、getDate()——获得当前日期对象是月份中的第几天
b、getDay()——获取当前日期对象是星期几,0表示星期天
c、getMonth()——获取当前日期对象是几月,0表示1月
d、getFullYear()——获取当前日期对象的以4位数字表示的年份
e、getDateString()——获得可理解的日期字符串
3、设置日期、月份、年份的方法 a、setDate() b、setMondth() c、setFullYear()
4、日期的计算
var date=new Date('8 May 2011');
date.setDate(32);
alert(date);
以上代码其实是没有一点错误的,最后打印的时间是2011年6月1日,因为javascript会把超出的部分累加到下一个月
例:计算当前日期25天之后的日期是?
var now=new Date();
var currDate=now.getDate();
now.setDate(currDate+25);
alert(now);
例:计算当前日期25天之前的日期是?
var now=new Date();
var currDate=now.getDate();
now.setDate(currDate-25);
alert(now);
5、获取时、分、秒、毫秒、时间字符串的方法
var now=new Date();
var hour=now.getHours();
var minutues=now.getMinutes();
var seconds=now.getSeconds();
var milliseconds=now.getMilliseconds();
var strTime=now.toTimeString();
6、设置时、分、秒、毫秒的方法
var now=new Date();
var hour=now.setHours();
var minutues=now.setMinutes();
var seconds=now.setSeconds();
var milliseconds=now.setMilliseconds();
var strTime=now.toTimeString();
时间的计算方式同日期的计算方式,javascript都会自动累加和递减
六、RegExp对象
七、javascript中的类