zoukankan      html  css  js  c++  java
  • JS高级-String- RegExp- Math- Date:

    1. String:

     切割: 将一个字符串,按指定分隔符,切割为多段子字符串

      简单切割: 切割符是固定的

       var arr=str.split("切割符")

       强调: 切割后的结果中,不包含切割符

      复杂切割: 切割符是变化的

       var arr=str.split(/正则/)

    2. RegExp:

     什么是: 封装一条正则表达式,并提供使用正则进行验证和查找的API

     何时: 只要在程序中存储一条正则,并使用正则进行验证和查找

     如何:

      创建: 2种:

       1. 如果正则表达式是固定不变的: 用//

        var reg=/正则/ig

       2. 如果正则表达式是动态变化的:

        var reg=new RegExp("正则表达式", "ig")

      API:

       验证字符串的格式是否符合要求:

         var bool=reg.test(str)

          用reg检查 str 是否符合格式要求

          返回bool:

          问题: 默认,只要str中部分内容满足reg要求,就返回true。

          解决: 凡是验证,必须前加^,后加$

      

       即查找所有关键词的内容,又查找关键词的位置

        var arr=reg.exec(str)

         在str中查找下一个reg匹配的关键词的位置和内容

        返回: arr的内容和match不加g时返回的arr结构一样

           [0: 关键词, index: 位置]

        强调: exec要想找所有,也必须加g

       

    3. Math:

     什么是: 保存所有数学计算的函数和常量的对象

     何时: 只要执行算术计算时,都用Math

     如何:

      强调: Math不能new!所有的API,都用大写Math直接调用

      API:

       1. 取整:

        上取整: Math.ceil(num)

        下取整: Math.floor(num) 不识别单位,无法转换

               parseInt(str) 可去掉数字后非数字的单位

        四舍五入: Math.round(num)

                  缺: 只能取整

                  优: 返回number类型,可直接参与计算

                 num.toFixed(d)

                  优: 可灵活指定小数位数

                  缺: 返回字符串,无法参数+运算

         

       2. 乘方和开平方

        乘方: Math.pow(底数, 幂)

        开平方: Math.sqrt(num)

       3. 最大值和最小值:

        Math.max(值1, 值2, ....)

        Math.min(值1, 值2, ....)

        问题: 不支持查找数组中的最大值和最小值 

        解决: spead:   ...数组

       4. 随机数:

        Math.random()  生成0~1之间的随机小数

        公式: min~max之间取随机

         parseInt(Math.randon()*(max-min+1)+min)

       5. 计算角度:

        反三角函数: Math.atan(对/临)

         问题: 只能计算正负90度内的角度变化,无法区分象限

         解决: Math.atan2(对, 临);

    4. Date:

     什么是: 封装一个时间,并提供操作时间的API

     何时: 只要在程序中保存时间或操作时间

     如何:

      创建: 4种:

       1. 创建日期对象,自动获得当前系统时间

        var now=new Date()

        强调: 只能拿到客户端系统时间

       2. 创建日期对象,保存一个自定义时间

        var birth=new Date("1993/12/26")

       3. 将ms转化为日期对象:

        为什么: 数据库中存储时间,都是保存时间的毫秒数

               人看不懂

        何时: 只要希望在内存中保存数据库中的时间时,都将ms转为date对象

        如何: var date=new Date(ms);

       4. 复制一个日期对象:

        为什么: 日期的计算都是直接修改原日期对象,计算后,无法保留原日期

        何时: 只要希望同时保留计算前后的开始和结束时间时,都要先将开始时间复制一个副本,再用副本计算结束时间

        如何: var date2=new Date(date1)

  • 相关阅读:
    webpack学习笔记五
    webpack的学习使用四
    判断数组B是否为数组A的子集
    html5标签知多少
    图代文时隐藏文字的兼容实现
    负margin的移位参考线
    font-size 兼容问题
    IE6读取不到样式文件bug
    一个重构眼中的“项目管理”
    唯物 VS 唯心
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/9002634.html
Copyright © 2011-2022 走看看