指用来存放字符的数组,字符数组的定义:用来存放字符量的数组称为字符数组。
当我们在使用字符串时,可以直接用基本类型的字符串调用字符串对象的封装方法,无需手动转换。
字符串的长度
基本类型字符串调用对象类型字符串封装的方法无需手动转换。
var str1 = "who is the nice man!";
var str2 = new String("who is the nice man!");
console.log(str1.length);//20//
基本类型字符串是字符串类型,但是字符串数组是字符串对象类型,字符串对象封装了属性和方法,而我们要学会操作这些方法。所以我们主要学习方法。
字符串的常用方法
1.charAt(index)
功能:获取对应下标处的字符
参数:下标
返回值:获取到的字符,没有对应下标返回空字符串
var str1 = "who饭 is the good man";
var ret1 = str1.charAt(3);
var ret2 = str1.charAt(5);
var ret3 = str1.charAt(29);
console.log(ret1);//饭
console.log(ret2);//i
console.log(ret3);//空字符串
console.log(typeof ret3); //string
console.log("*"+ret3+"*");//**
2.charCodeAt(index)
功能:获取对应下标处的字符编码
参数:下标
返回值:获取到的字符编码(0-65535),没有对应的下标返回NaN
var str2 = "sunck饭 is a good man";
var ret4 = str2.charCodeAt(3);
var ret5 = str2.charCodeAt(5);
var ret6 = str2.charCodeAt(29);
console.log(ret4);//99 是字母c的ASCII码值
console.log(ret5);//20975 Unicode(万国码)
console.log(ret6);//NaN
// 英文字符
// ASCII码值
// 48-->字符0
// 65-->字符A
// 97-->字符a
3.String.formCharCode(ASCII码)
功能:将ASCII值转化成对应的数值
var ret7 = String.fromCharCode(97);
//参数:ASCII值
//返回值:对应的字符
console.log(ret7);//
4.字符串的大小写转换
注意:字符串创建之后就不能改变了
4.1全部转换成小写
全部转换成小写,以返回值的形式得到结果。原字符串不会改变。
var str3 = "SUNCK is a Good mAn"
var ret8 = str3.toLowerCase();
console.log(ret8);//sunck is a good man
console.log(str3);//SUNCK is a Good mAn
4.2全部转换成大写
全部转换成大写,以返回值的形式得到结果。原字符串不会改变
var ret9 = str3.toUpperCase();
console.log(ret9);//SUNCK IS A GOOD MAN
5.判断两个字符串是否相等
== 值相等
=== 绝对相等
var str4 = 1;
var str5 = "1";
console.log(str4==str5);//true 值相等
console.log(str4===str5);//false 绝对相等(值和类型)
6.字符串比较大小
规则:
两个字符串从下标为0的字符开始比较,如果谁的ASCII码值大,那么谁大,如果相等继续比较后面的字符,当两个字符不相等时停止比较,此时谁的ASCII值大谁就大。
var str6 = "sunck is a good man";
var str7 = "sunck is a nice man";
// 前面都相等,n的ASCC比g大,所以str7大
//如果返回值为1,则前面的大于后面的
//如果返回值为-1,则后面的大于前面的
//如果返回值为0,说明相等
var ret10 = str6.localeCompare(str7);
if (ret10<0){
console.log(str6<str7);
}else if (ret10<0){
console.log(str6>str7);
}else{
console.log(str6=str7);//true
}
7.查找字符串
7.1 indexOf()
默认从左至右查找第一次出现的子字符串;
返回值:子串第一次出现的下标;如果没有找到子串,返回-1;
7.2lastIndexOf( );
从右至左查找第一次出现的子字符串;
返回值:子串第一次出现的下标;如果 没有找到子串,返回-1;
8.替换子串
replace( oldStr,newStr)
目前来说只能更改第一次出现的oldStr;
var str11 = "sunck is a good man! sunck is a nice man";
var ret13 = str11.replace("good","handsome");
console.log(str11);//sunck is a good man! sunck is a nice man
console.log(ret13);//sunck is a handsome man! sunck is a nice man
9.提取子串
9.1 substring( );
从某个下标开始提取,一直提取到原字符串的末尾
9.2 substring( 参数1 , 参数2 );
从参数1下标开始提取,一直提取到原字符串参数2下标之前
9.3 substr( )
从某个下标开始提取,一直提取到原字符串的末尾
9.4substr(参数1,参数2)
从某个下标开始提取,一直提取到原字符串参数2个长度(包括空格)
var str12 = "sunck is a good man! sunck is a nice man";
var ret14 = str12.substring(3);
console.log(ret14);//ck is a good man! sunck is a nice man
var ret15 = str12.substring(3,18);
console.log(ret15);//ck is a good m
var ret16 = str12.substr(3);
console.log(ret16);//ck is a good man! sunck is a nice man
var ret17 = str12.substr(3,18);//ck is a good man!
console.log(ret17);
10.字符串分隔
用参数切割字符串,结果保存在数组中返回
var str13 = " sunck is a good man! sunck is a nice man";
var ret18 = str13.split(" ");
console.log(ret18);
//["", "sunck", "", "", "", "is", "a", "good", "", "man!", "sunck", "is", "a", "nice", "man"]
Math对象
封装了一些数学相关的运算
四舍五入:Math.round(参数1);
var num = Math.round(4.5);
console.log(num);//5
向上取整:Math.ceil(参数1);
var num1 = Math.ceil(3.1);
console.log(num1);//4
向下取整:Math.floor(参数1)
console.log(Math.floor(3.9));//3
取最大值:Math.max(参数1,参数2,参数3......参数n)
console.log(Math.max(3,4,6,76,8,89,32));//89
取最小值:Math.min(参数1,参数2,参数3......参数n)
console.log(Math.min(3,4,6,76,8,89,32));//3
绝对值abs(参数1)
console.log(Math.abs(-10));//10
x的y次方:Math.pow( x , y )
console.log(Math.pow(2,3));//8
开平方:Math.sqrt(参数1)
console.log(Math.sqrt(25));//5
随机输出x-y之间的一个整数:随机输出x-y之间的一个整数:Math.random()*(y-x+1)+x;
console.log(parseInt(Math.random() * (10 - 5 + 1) + 5));
不需要多余的解释,只有简单的干货。今天还早,继续。
格林尼治标准时间(旧译格林尼治平均时间或格林威治标准时间;英语:Greenwich Mean Time,GMT)是指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息。
世界协调时间(UTC):世界时间1970年1月1日0时
JS中的Date类型是由早期Java.util.Date类型基础上构建的,所以保存的是距离1970年1月1日0时的毫秒数来存储时间的。
创建时间函数
使用构造函数创建时间函数
1.var date1 = Date()
得到的是当前时间,并且是字符串类型
var date2 = new Date();
如果不使用参数,得到的当前时间,但是是对象类型
使用不同形式的参数,得到的是不一样的结果
var date3 = new Date("2008/08/08 12:34:56");//Fri Aug 08 2008 12:34:56 GMT+0800 (中国标准时间)
console.log(date3);
//省略时分秒默认为0(默认是标准时间)
var date4 = new Date("2008/08/08");//Fri Aug 08 2008 00:00:00 GMT+0800 (中国标准时间)
console.log(date4);
var date5 = new Date("2008/8/8");//Fri Aug 08 2008 00:00:00 GMT+0800 (中国标准时间)
console.log(date5);
var date6 = new Date("2008-09-08");//Fri Aug 08 2008 08:00:00 GMT+0800 (中国标准时间)
console.log(date6);
var date7 = new Date("2008-8-8");//Fri Aug 08 2008 00:00:00 GMT+0800 (中国标准时间)
console.log(date7);
参数是年,月,日,时,分,秒,毫秒
注意:年月必须写
月是从0开始,11结束,如果月份超过11,则年份自动增加;
日是从1开始,当月末尾结束,如果日期超过当月应该有的天数,月份自动增加;
时,分,秒,毫秒都如此
var date9 = new Date (2015,0,1);
//Thu Jan 01 2015 00:00:00 GMT+0800 (中国标准时间)
console.log(date9);
参数是一个数字
得到的是距离1970年1月1日0点参数毫秒之后的时间。
注意:对应北京时间增加8小时
var date10 = new Date (2300);
console.log(date10);//Thu Jan 01 1970 08:00:02 GMT+0800 (中国标准时间)
Date对象的方法
得到当前时间
var date = new Date();
得到年
console.log(date.getFullYear());
得到月
console.log(date.getMonth());
得到日
console.log(date.getDate());
得到星期
console.log(date.getDay());
得到时
console.log(date.getHours());
得到分
console.log(date.getMinutes());
得到秒
console.log(date.getSeconds());
得到毫秒
console.log(date.getMilliseconds());
当前对象表示的时间距离1970年1月1日0时的毫秒数
console.log(date.getTime());
设置时间
设置年
date.setFullYear(1992);
console.log(date);
设置月
月是从0开始,如果月大于等于12,年份增加
date.setMonth(4);
console.log(date);
注意:星期一般不设置
设置时
如果时大于23,日增加
date.setHours(08);
console.log(date);
设置分钟
如果分钟大于59,时增加
date.setMinutes(54);
console.log(date);
设置秒
如果分钟大于59,分钟增加
date.setMinutes(54);
console.log(date);
设置毫秒
如果分钟大于999,分钟增加
date.setMilliseconds(666);
console.log(date);
设置距离1970年1月1日0时毫秒数
date.setTime(1000);
console.log(date);
转字符串
包含年月日时分秒
console.log(date.toLocaleString());//1992/5/3 上午8:54:51
包含年月日
console.log(date.toLocaleDateString());//1992/5/3
包含时分秒
console.log(date.toLocaleTimeString());//上午8:54:51
字符串
var date1 = Date();
//得到字符串表示的时间距离1970年1月1日的毫秒数
console.log(Date.parse(date1));//1479290378000
Date对象间的运算
两个时间对象相减,得到的是两个对象间相差的毫秒数
var date1 = new Date("2016-10-10 12:12:12");
var date2 = new Date("2016-10-10 12:12:11");
console.log(date1-date2);//1000
console.log(date2-date1);//-1000
将两个时间字符串拼接
console.log(date1+date2);
//Mon Oct 10 2016 12:12:12 GMT+0800 (中国标准时间)Mon Oct 10 2016 12:12:11 GMT+0800 (中国标准时间)
今日结束、好好消化。。