zoukankan      html  css  js  c++  java
  • JS 10

    1. ***日期API

    2. ***Error

    1. ***日期API

       单位:  FullYear   Month     Date          Day

                 Hours      Minutes   Seconds    Milliseconds

       API: 1. 每个单位都有一个对儿get/set方法

                比如: var year=date.getFullYear()//获取单位的值    

                         date.setFullYear(year)//设置单位的值

                特殊: Day没有set方法

              2. 命名: 年月日星期没有s结尾

                          时分秒毫秒都有s结尾

              3. 取值范围: 只有Date从1~31

                       不考虑FullYear, 其余都是从0开始,到进制-1结束

                   Month: 0~11 总比现实中小1, 需要修正

                   Date: 1~31   不用修正

                   Day: 0~6      不用修正

                   Hours: 0~23 不用修正

                   Minutes/Seconds: 0~59 不用修正

       日期计算:

          1. 计算两个日期的时间差: 两日期相减,得毫秒数,再换算

          2. 对任意单位做加减: 3步:

               1. 取分量: var d=date.getDate();

               2. 做加减: d+=60

               3. 放回去: date.setDate(d);

                    强调: 所有set方法可自动调整时间进制

              其实可简写为: date.setDate(date.getDate()+60)

       转字符串:

           date.toString() -> 当地时间的完整时间格式

           date.toLocaleString() ->当地时间的简化版格式

           date.toLocaleDateString() -> 当地时间的日期部分

           date.toLocaleTimeString() -> 当地时间的时间部分

           date.toGMTString() -> 标准时区的标准时间

       作业: 自定义format函数: 2_format.html

    2. ***Error

       什么是错误(bug): 程序执行过程中遇到的异常中断。

              一旦发生错误,程序立刻退出。

       什么是错误处理: 即使程序发生错误,也能保证程序不异常中断的一种机制。

       如何:

           try{

               可能发生错误的代码

           }catch(err){//仅在发生错误时,才执行

               错误处理代码: 1. 提示用户错误信息(String(err))

                                      2. 记录系统日志

           }finally{

               无论是否发生错误,都必须执行的代码。

               比如: 释放资源!

           }

      err: Error对象: 在错误发生时,自动创建的,保存错误信息的对象。

        错误类型6种:

            SyntaxError   语法错误

            ReferenceError   要使用的变量没找到

            TypeError   错误的调用了对象的方法

            RangeError  参数范围越界 比如: toFixed(d) 0~20

            EvalError   URIError

    1. ***错误处理

    2. ***Function

       *****闭包

    1. ***错误处理

        只要可以提前预料的错误,都要用if...else...来代替try catch

        只有无法提前预料的错误,采用try catch

        主动抛出错误:

        为什么: 抛出错误通常是为了提醒使用者错误的使用的程序

        如何: throw new Error("错误消息")

    2. ***Function:

        什么是: js中一切函数都是对象

                    函数对象是专门封装函数定义的对象。

        创建: 3种:

          1. 声明: function 函数名(参数列表){函数体; return 返回值;}

              何时: 只要一段代码被反复使用,都要先定义在一个专门的函数中,再反复调用函数即可——复用

                 何时使用参数: 只要函数步骤中必须某些数据才能正常执行时,就要定义参数。

                 何时使用返回值: 如果函数的调用者需要函数的执行结果时,函数就必须返回值。

             可被声明提前:

          2. 函数直接量:

           var  函数名=function(参数列表){函数体; return 返回值;};

             不会被声明提前。

    ****声明提前(hoist): 在开始执行程序前,将所有var声明的变量和function声明的函数提前到*当前作用域*的顶部,集中创建。

              赋值留在原地!

           何时: 只要不希望被声明提前时。

            揭示了: 函数名仅是一个普通的变量

                        函数定义其实是一个对象

                        函数名中仅保存了函数对象的地址——引用

          3. 用new:

    var fun=

         new Function("参数1","参数2",...,"函数体; return 返回值")

         比如: function compare(a,b){return a-b;}

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

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

    ***重载(overload):

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

       为什么: 减轻调用者的负担,一个函数名,可执行多种操作

       何时: 一项任务,根据不同的参数,执行不同的操作流程时

       如何:   js语法不支持重载效果

          变通:  所有函数对象内,都自动内建了一个arguments对象

             arguments对象:

                专门保存传入函数的所有参数值的类数组对象

                 类数组对象: (object like array)

                    vs 数组: 相同: 下标, length, for遍历

                                 不同: 类数组对象是Object,不是Array,无法使用Array的API

                                         数组是Array类型,可以使用数组类型所有的API

        匿名函数:

        什么是: 函数创建时,不被任何变量引用的函数

        为什么: 节约内存

        何时: 如果一个函数只用一次,用完希望自动释放时

            1. 回调callback: 将函数作为参数传递给另一个函数去调用 

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

                         str.replace(/reg/g,function(kw,$1,...){return ...})

            2. 自调: 创建函数后立刻调用自己!

                何时: 如果一个函数只执行一次,不会再重用时

                为什么: 建立临时作用域!避免全局污染!

                如何:

                   (function(参数列表){函数体; return 返回值})();

  • 相关阅读:
    [转]select any dictionary与select_catalog_role区别
    [转]Oracle DB 权限与角色
    About Secure Application Roles
    [转]Oracle DB 用户
    [转]Oracle DB 管理数据库存储结构
    lsnrctl工具之service
    [转]Oracle DB 配置Oracle Network环境
    [转]Oracle DB 性能视图和数据字典
    [转]Oracle DB 查看预警日志
    判断数据库启动时使用的参数文件类型的方法
  • 原文地址:https://www.cnblogs.com/Hale-Proh/p/7199644.html
Copyright © 2011-2022 走看看