Javascript 2

本文详细介绍了JavaScript中Date对象的使用,包括创建当前时间和指定时间对象、常用方法如getDate(), getTime(), Date.now(),以及Math对象的数学运算和字符串包装类的功能。此外,还涵盖了正则表达式的创建和使用技巧,例如匹配模式和字符串操作方法。
摘要由CSDN通过智能技术生成
  1. Date对象
    - 在Js中使用Date对象来表示一个时间
    1. 创建一个Date对象
      var a=new Date();

      如果直接使用构造函数创建一个Date对象,则会封装当前代码执行的时间

    2. 创建一个指定的时间对象
      - 需要在构造函数中传递一个表示时间的字符串作为参数

      var d2=new Date("16/04/2020");

      日期的格式 月份/日/年份 时:分:秒

    3. Date对象的方法

      1. getDate()
        获取当前日期对象是几日

      2. getTime()
        - 获取当前日期对象的时间戳
        - 时间戳,指的是从格林威治标准时间的1970年1月1日,0时0分0秒到当前日期所花费的毫秒数(1秒=1000毫秒)
        - 计算机底层在保存时间时使用的都是时间戳

      3. Date.now()
        - 获取当前的时间戳

        var time=Date.now();
        console.log(time);

        会输出执行这行代码的时候的时间戳

  2. Math
    - Math和其他的兑现过不同,它不是一个构造函数,它属于一个工具类,所以不用创建对象,它里面封装了数学运算相关的属性和方法

    1. 方法

      1. abs()
        - 可以用来计算一个数的绝对值

        console.log(Math.abs(222));
      2. ceil()
        - 对数进行上舍入(小数位只要有值就自动进1)

      3. floor()
        - 对数进行下取整

      4. round()
        - 对一个数进行四舍五入取整

      5. random()
        - 可以用来生成一个0-1之间的随机数

      6. max()
        - 可以获取多个数中的最大值

      7. min()
        - 可以获取多个数之间的最小值

      8. pow(x,y)
        - 返回x的y次幂

  3. 包装类
    - 在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象

    1. String()

      1. 可以将基本数据类型字符串转换为String对象

    2. Number()

      1. 可以将基本数据类型字符串转换为Number对象

    3. Boolean()

      1. 可以将基本数据类型字符串转换为Boolean对象

    4. 上面三个包装类可以往括号里面添加参数,将相应的参数转换为对象
      但是注意:我们在实际应用中不会使用基本数据类型的对象,如果使用这类对象,在做一些比较时可能会带来不可预料的结果

    5. 方法和属性只能添加给对象,不能添加给基本数据类型
      当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法

  4. 字符串的方法
    - 在底层,字符串是以字符数组的形式保存的["H","E","L"]

    1. charAt()
      - 返回字符串中指定位置的字符
      - 不会对原字符串进行更改

    2. charCodeAt()
      - 返回在指定位置的字符的Unicode编码

    3. formCharCode()
      - 可以根据字符编码去获取字符
      - 通过构造函数对象

      var result=String.formCharCode(74);
    4. indexOf()
      - 该方法可以检索一个字符串中是否含有指定内容
      - 如果字符串中含有该内容,则会返回其第一次出现的索引,如果没有找到指定的内容则返回-1
      - 可以指定一个第二个参数,制定开始查找的位置

    5. lastIndexOf()
      - 该方法的用法和indexOf()的使用方法一样
      - 但是这个方法是从后往前找,并且返回指定内容在字符串中最后的索引位置,也可以指定开始查找的位置

    6. subString()
      - 可以用来截取一个字符串,和slice()类似
      - 参数:1.开始截取位置的索引(包括开始位置) 2.结束位置的索引(不包括结束位置)
      - 不同点:这个方法不能接受负值作为参数,如果传递了一个负值,则默认使用0

    7. substr()
      - 用来截取字符串
      - 参数:1.开始位置的索引 2.截取的长度

    8. split()
      - 可以将一个字符串拆分为一个数组
      - 参数:需要一个字符串作为参数,将会根据该字符串去拆分数组
      - 如果传递一个空串作为参数,则会将字符串里面的每个字符拆分

  5. 正则表达式
    - 用于定义一些字符串的规则,计算机可以通过正则表达式,来检查一个字符串是否符合规则,或则将字符串中符合规则的内容提取出来

    1. 创建正则表达式的对象

      var reg=new RegExp();

      语法:
      var 变量名 = new RegExp(“正则表达式”,“匹配模式”);

    2. 正则表达式的方法

      1. test()
        - 可以用来检查字符串是否符合正则表达式的规则,如果符合则返回true,否则返回false

      2. 匹配模式(也要是字符串的形式)
        i:忽略大小写
        g:全局匹配模式

    3. 使用字面量来创建正则表达式

      语法:
      var 变量名=/正则表达式/匹配模式

      这个里面不需要以字符串形式填写

    4. 创造一个正则表达式,检查一个字符串中是否有a或者b

      var reg=/a|b/

      使用|表示或者的意思
      []里面的内容也是或的关系,[abc]表示a|b|c
      [a-z]表示a到z里面的字母,如果含有都返回true
      [A-z]表示包括大写小写所有字母
      [^] 除了里面的内容,如果字符串含有除了里面的内容则返回true,如果只有里面的内容则返回false

    5. 支持正则表达式的String对象的方法

      1. split()
        - 参数可以是正则表达式,将其视作拆分的规则
        - 默认全局变量

      2. search()
        - 检索与正则表达式相匹配的值
        - 如果搜索到指定内容,则会返回第一次出现的索引,如果没有搜索到返回-1
        - 可以接受一个正则表达式作为参数,然后根据正则表达式检索字符串
        - 无法全局

      3. match()
        - 找到一个或多个正则表达式的匹配
        - 默认情况下,match只会找到第一个符合要求的内容,找到以后就停止检索
           我们可以设置正则表达式为全局匹配模式,这样就会匹配到所有的内容
        - 可以为一个正则表达式设置多个匹配模式,且顺序无所谓
        - 会将匹配到的内容封装到一个数组中返回,即使只查询到一个结果

      4. replace()
        - 可以将字符串中指定内容替换为新的内容
        - 需要两个参数:
           1.被替换的内容
           2.新的内容

    6. 正则表达式的语法

      1. 量词
        - 通过量词可以设置一个内容出现的次数

        var reg=/a{3}/

        {n}正好出现n次
        量词只对前面的一个内容起作用
        {m,n}表示出现m~n次
        {m,}表示出现m次即以上都可以
        + 至少一个,相当于{1,}
        * 0个或多个,相当于{0,}
        ? 表示0个或1个,相当于{0,1}

      2. 检查一个字符串中是否以a开头
        ^a 匹配开头的a
        a$ 匹配结尾的a
        所以^a$表示字符串里面开头结尾只能是a

      3. 如果一个正则表达式有对于不同位的字符有多个规则,可以将规则直接连起来
        例子:判断一串字符是否是合格手机号的正则表达式可以如下进行表达

        var reg=/^1[3-9][0-9]{9}$/
      4. 检测一个字符串中是否含有.这个东西
        - 知识点:正则表达式里面含有元字符(填写在正则表达式的第一个参数位置)这个东西,即每个符号可能都会有不同的意思
        - 所以为了避免歧义,需要在正则表达式里面加转义字符
        - . 代表着查找单个字符(任意字符),除了换行和行结束符    如果使用var reg=new RegExp()方式来构建正则表达式的话,需要加两个转义字符\\才能正常使用(因为参数是字符串的缘故),如果使用var reg=/ \. /的方式,转义字符只需要添加一个就行
        - \w 代表查找任意字母、数字、_                     \W 除了字母、数字、_
        - \d 任意的数字                                                 \D 除了数字
        - \s 空格                                                            \S 除了空格
        - \b 单词边界                                                     \B 除了单词边界       
        b的例子:创建一个正则表达式检查一个字符串中是否含有单词child       

        var reg=/\bchild\b/;
        var str="hello child dddd";
        

           这种情况下会只匹配child,而不会匹配类似children这种单词

      5. 如果用户输入的用户名中含有多个空格,需要提取有效数据(前面,单词中间,结尾均有空格)的例子

        //为了去除用户输入中的空格可以使用字符串的replace方法,将空格替换成空串
        var str=prompt("请输入您的用户名");
        如果有不连续的多个规则在正则表达式里面,可以通过|来连接
        var reg= /^\s*|\s*$/g;
        var result=str.replace(reg,"");
        console.log(result);

        注意:正则表达式里面没有与,也不可以通过+来连接两个规则,因为这个符号代表一个两次

      6. 例子:提取邮箱的正则表达式
        - 邮件的格式:任意字母数字下划线.任意字母数字下划线@任意字母数字下划线.任意字母(2-5位).任意字母(2-5位)

        var reg=/^/w{3,}(\.\w+)*@[A-z0-9]([A-z]{2-5}){1,2}$/;
        var str="hello.name@163.com";
        var result=reg.test(str);
        console.log(result);
        注意:如果是使用reg的test方法来匹配字符串中是否有符合规则的东西的时候,需要在规则前后加上开头结尾符号,即将{1,2}里面的2次全部都检查一遍,如果不加开头结尾符号,检测到1次有效结果就会退出然后返回true值,但是实际上是不符合规则的,所以要添加开头结尾符号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值