JavaScript字符串对象与Date

指用来存放字符的数组,字符数组的定义:用来存放字符量的数组称为字符数组。

当我们在使用字符串时,可以直接用基本类型的字符串调用字符串对象的封装方法,无需手动转换。

javascript07.jpg

字符串的长度

基本类型字符串调用对象类型字符串封装的方法无需手动转换。

    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));

不需要多余的解释,只有简单的干货。今天还早,继续。

javascript08.jpg

格林尼治标准时间(旧译格林尼治平均时间或格林威治标准时间;英语: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 (中国标准时间)

今日结束、好好消化。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 参考基础教程的整理,方便记忆 一、Object对象 (O大写) 所有其他对象都继承自这个对象。Object本身也是...
    Viaphlyn阅读 2,302评论 0 0
  • 一、数组 数组是一个有序列表,所以有下标. 并且数组在js中可以存在任意类型的数据.并且同一个数组中可以存放不同的...
    空谷悠阅读 503评论 0 1
  • 【JavaScript错误】 当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误。可...
    年少懵懂丶流年梦阅读 265评论 0 0
  • Math Math对象时JavaScript的内置对象,提供一系列数学常数和数学方法。Math对象只提供了静态的属...
    匿名用户404阅读 338评论 0 0
  •   每个人来到世上都是有愿力牵引的,当我们还没有找到自己的愿时,就好像找不到家的孩子,迷茫、孤独。   要发愿“找...
    眼气侠阅读 1,003评论 0 0