zoukankan      html  css  js  c++  java
  • JS高级-Date- Error-***Function:

    1. Date:

     API:

      1. 8个单位:

       FullYear   Month   Date   Day

       Hours     Minutes   Seconds   Milliseconds

      2. 每個單位上都有一對兒get/set方法

       其中: .getXXX() 用于获取单位的数值

            .setXXX(值) 用于修改单位的数值

       特例: Day,没有set

      3. 取值范围:

       Month: 0~11  计算机中的月份数,总是比现实中小1

         需要修正

       Date: 1~31

       Day: 0~6

       Hours: 0~23

       Minutes/Seconds: 0~59

     计算: 2种:

      1. 两日期对象可相减,结果是毫秒差

      2. 计算任意一个单位的值:

       3步:

        1. 取出单位的值: var n=date.getXXX();

        2. 做加减

        3. 修改单位的值: date.setXXX(n)

          强调: setXXX() 可自动调整时间进制

       简写: now.setXXX(now.getXXX()+n);

       问题: 直接修改原日期

       解决: 先复制原日期,再用副本修改新日期

     日期格式化:

      date.toString() 转为当地时间的完整格式

      date.toLocaleString() 转为当地时间的简化版格式

      date.toLocaleDateString() 仅保留日期部分

      date.toLocaleTimeString() 仅保留时分秒部分

      date.toGMTString() 转为国际标准时间(0时区)

    2. Error:

     什么是: 保存错误信息

     错误: 程序执行过程中,导致程序无法正常执行的异常情况

     后果: 程序都会强行退出

     错误处理: 即使出错,也保证程序不中断退出的一种机制

     何时: 只要希望,即使出错,也保证程序不中断退出

     如何错误处理:

      try{

        可能出错的正确代码

      }catch(err){

        //err: 自动获得错误的信息

        只有发生错误,才执行的错误处理代码:

        1. 提示, 2. 记录日志, 3. 释放资源

      }

     优化: 尽量用if...else 代替try catch

     Error: 鄙视: js中共有几种错误类型: 6种:

      1. SyntaxError: 语法错误

      2. ReferenceError: 要用的变量没找到

      3. TypeError: 类型错误: 错误的使用了类型或类型的方法

      4. RangeError: 范围错误: 参数超范围:

        强调: js中数组下标超范围不报错!

      5. URIError  6. EvalError

     主动抛出错误:
      何时: 团队协作开发中,程序的作者向程序的调用者提示错误的使用了程序。

    3. Function:

     什么是: 封装一段代码段的对象

     为什么: 代码重用

     何时: 如果一段代码可能被反复使用

     如何: 3种:

      1. 声明:

       function 函数名(参数列表){

         函数体;

         return 返回值

       }

       问题: 被声明提前hoist

       解决: 用赋值方式创建函数

      2. 赋值:

       var函数名=function (参数列表){

         函数体;

         return 返回值

       }

       揭示: 函数其实是一个对象

            function关键词,其实是创建一个函数对象的意思

            函数名其实就是一个普通的变量

      3. 用new:

       var fun=new Function("a","b","return a-b");

      鄙视: 以下定义函数正确的是:

        function fun(a,b){return a-b}

        var fun=function(a,b){return a-b}

        var fun=new Function(a,b,"return a-b")    X

        var fun=new Function("a","b","return a-b")

     重载overload:

      什么是: 相同函数名,不同参数列表的多个函数,在调用时可根据传入参数的不同,自动选择匹配的函数调用。

      为什么: 减少API的数量,减轻调用者的负担

      何时: 如果一项任务,可能根据传入参数的不同,执行不同的逻辑时

       比如: arr.slice(starti,endi+1)

            arr.slice(starti)

            arr.slice()

            arr.splice(starti,n)

            arr.splice(starti,0,值1,值2,....)

            arr.splice(starti,n,值1,值2,....)

      如何:

       问题: js默认不支持重载!

         为什么: js不允许多个同名函数同时存在

       解决: arguments

        每个函数内,默认都会自动创建一个arguments对象

        arguments对象可自动接收所有传入函数的参数值

        arguemnts是: 保存所有参数值的类数组对象

         相同: 1. 下标, 2. .length, 3. for遍历

         不同: 类型不同, API不通用

       强调: 如果同时定义了参数变量和arguments

          则arguments中的值和参数变量中的值始终是共用同一个值。

     垃圾回收: 鄙视: 谈谈你对垃圾回收的理解

      垃圾: 不再被任何变量引用的对象

      为什么: 内存空间都是有限的

      垃圾回收: js引擎会自动释放不再被使用的对象的内存

      垃圾回收器: 专门回收不再被使用的对象的小程序

          随主程序启动,并伴随主程序并行执行

          随时记录每个对象的引用次数

          一旦发现一个对象不再被引用,则释放该对象

     匿名函数:

      什么是: 创建函数时,不指定函数名

      为什么: 节约内存

      何时: 希望一旦一个函数使用后,不会再使用,立刻释放

      如何: 2种:

       1. 回调:

        比如: arr.sort(function(a,b){return a-b})

             str.replace(正则, function(kw){ return 新值 })

             setInterval(function(){ ... }, 间隔ms)

       2. 自调: 定义函数后,立刻调用自己

        为什么: 避免使用全局变量,避免内存泄露/全局污染

        何时: 今后所有js代码,都应该放在匿名函数自调中,不再使用全局变量

        如何: (function(){ ... })()

     作业: function add(){

           

          }

          console.log(add(1,2));//3

          console.log(add(1,2,3));//6

          console.log(add(1,2,3,4,5));//15

  • 相关阅读:
    Django的路由寻址
    Guava Cache 原理分析与最佳实践
    「必知必会」最细致的 ArrayList 原理分析
    「必知必会」最细致的 LinkedList 原理分析
    oracle listagg() 函数
    .net HttpClient 向 WebApi Post 的方法
    MySql 如何让表名支持大小写
    Java的基本数据类型
    CF666E
    spring使用mybatis执行SQL脚本,创建和初始化数据库
  • 原文地址:https://www.cnblogs.com/QiliPING9/p/9002645.html
Copyright © 2011-2022 走看看