前端学习笔记(八)-Function、Date、RegExp

函数
  • 函数名是指向函数对象的指针,因此不存在函数重载
  • 函数声明
    function sum(num1,num2){
        return num1+num2;
    }
复制代码
  • 函数表达式
    var sum=function(num1,num2){
        return num1+num2;
    }
复制代码
  • 解析器会在任何代码之前解析函数声明,函数表达式只有在解析器执行到代码所在行时才会真正被解释执行
  • 函数名本身就是变量,因此可以作为另一个函数的参数或者返回值。也可以从一个函数中返回另一个函数。
    function callSomeFunction(someFunction,someArgument){
        //作为另一个函数的参数
        return someFunction(someArgument);
        //作为另一个函数的返回值
    }
复制代码
    function createComparisonFunction(propertyName){
        return function(){};
        //从一个函数中返回另一个函数
    }
复制代码
  • 函数内部属性(P115)
    • arguments,类数组对象,保存函数参数。内有callee的属性,指向拥有这个arguments对象的函数
    • this:函数执行的环境
    • caller:调用当前函数的函数的引用
    function outer(){
        //调用当前函数的函数
        inner();
    }
    function inner(){
        //当前函数
        alter(inner.caller);
    }
复制代码
  • 函数的属性和方法

    • length:函数希望接收的参数数量
    • prototype:保存引用类型所有实例方法。不可枚举
    • apply和call,在特定的作用域中调用函数
      • this参数,设置函数体内的this值,表明函数的执行环境
      • 函数的参数,apply支持参数数组而call只能逐个列举参数
      • 调用后立即执行
    • bind,创建一个函数的实例。
      • this参数,设置函数体内的this值,表明函数的执行环境
      • 函数的参数也是逐个列举
    函数this参数函数的参数是否立即执行
    apply函数的执行环境支持数组参数
    call函数的执行环境列举参数
    bind函数的执行环境列举参数否,创建函数实例
Date
  • 构造方法:var now = new Date()
    • 默认情况下自动获得当前的日期和时间
    • 接受若干种日期格式(Date.parse())
      • “月/日/年,如6/13/1994”
      • “英文月 日,年,如 January 12,2014”
      • “英文星期 英文月 日 年 时:分:秒 时区,如 Tue May 25 2004 00:00:00 GMT-0700”
      • “YYYY:MM:DDTHH:mm:ss.sssZ”
    • Date.UTC(),年,基于0的月份,月中的哪一天(以1为起始),基于0的小时数,基于0的分钟,秒,毫秒
RegExp类型
  • 创建正则表达式
    • var expression=/pattern/flags
    • var pattern=new RegExp("[bc]at","i")。需要注意转义的问题
    • 使用正则表达式字面量时,必须每次都创建新的实例,和使用构造函数的行为一致。
  • flags
    • g:全局模式,应用于所有字符串,而非在发现第一个匹配的字符串时停止
    • i:不区分大小写
    • m:多行模式,在到达一行文本的末尾后还会继续查找下一行字符串中匹配的项
  • 实例属性
    • global:是否设置了g标志
    • ignoreCase:是否设置了i标志
    • lastIndex:
    • multiline:是否设置了m标志 -source:正则表达式的字符串表示,按照字面量的形式返回
  • 实例方法
    • exec(),专门为捕获组设计
      • 输入:待匹配的字符串
      • 输出:第一个匹配项信息的数组
      • index:匹配信息在字符串中的位置
      • input:即输入
      • 数组:第一项表示匹配正则表达式的字符串。其余表示捕获组。
      • 在设置全局模式时,每次调用exec()会在输入的字符串中寻找匹配项。否则exec()将始终返回第一个匹配项。
    • test(),判断目标字符串是否与某个模式匹配。
    • toString和toLocaleString,返回正则表达式的字面量
    • valueOf,返回正则表达式本身
  • 构造函数的属性
    • input:最近一次要匹配的字符串
    • lastMatch:最近一次的匹配项
    • lastParen:最近一次匹配的捕获组
    • leftContext:input字符串中,匹配项之前的文本
    • rightContext:input字符串中,匹配项之后的文本
    • multiline:是否使用了多行模式
基本包装类型
  • 读取模式
    • 创建基本包装类型的一个实例
    • 在实例上调用指定的方法
    • 销毁这个实例
  • Boolean:永远不要使用
  • Number
    • toFixed(),按照指定的小数位数返回数值的字符串表示
    • toExponential(),返回指定小数位数指数表示的字符串
    • toPrecision(),按照指定的小数位数,返回数值最合适的格式的字符串
    • 不建议实例化Number类型
  • String
    • charAt()和charCodeAt()
    • concat()
    • slice(),substr(),substring()
    • indexOf()和lastIndexOf()
    • trim()
    • toLowerCase()和toUpperCase()
    • localeCompare()
    • fromCharCode()
单体内置对象
  • Global
    • encodeURI和decodeURI。对整个URI进行编码和解码。不会对本身属于URI的特殊字符进行编码。
    • encodeURIComponent()和decodeURIComponent()。对URI中的某一段进行编码和解码。会对任何非标准的特殊字符进行编码。
    • eval。只接受一个参数,即要执行的JS代码字符串。被执行的代码具有与该执行环境相同的作用域链。严格模型下, 外部访问不到evel()中创建的任何变量或函数。
  • 大部分浏览器将全局对象Global作为window对象的一部分实现
  • Math

转载于:https://juejin.im/post/5d08d8e0f265da1b672110ec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值