引用类型归纳

引用类型是一种数据结构,将数据和功能组织在一起,又被称为类。

1.Object 类型

  • 创建方式:
    1.new Object( )
    2.var obj = { };

  • 访问方式:
    1. obj.attr (首选,采用.的方式)
    2. obj[attr]: 如果attr是变量

2.Array 类型

特点:数组的项中数据类型可以不一致,数组的长度可以不一致

  • 创建方式:
    1.用Array构造数组,Array中可以传入数字(表示长度),可以传入值创建数组
    2.用字面量的方式创建数组

  • 访问值方式:
    使用方括号,并且基于0的数字索引

  • 访问长度的方式:
    Array.length: 通过设置此项,可以从数组的末尾添加项或者移除项目

  • 检测数组:
    Array.isArray(array)方式进行监测是否是数组

  • 转换方法:
    toLocaleString( ) , toString( ) : 表示转String字符串
    valueOf( ) : 会返回数组

  • 栈方法:
    push( ) : 可以接受多个参数,并且插入数组尾端
    pop( ): 可以删除尾端的项,并且进行返回

  • 队列方法:
    shift( ): 可以接受多个参数,并且插入数组前端
    unshift( ): 可以删除前端的项,并且进行返回

  • 重排序方法:
    reverse( ): 反转数组顺序
    sort( ): 将数组的项转化为字符串,然后将字符串进行排序,支持传入一个compare函数进行排序,用value2 - value1就好

  • 操作方法:
    concat(): 创建当前数组的一个副本,然后将参数(数组或者项)一 一 添加到末尾
    slice(start, end): 创建start和end之间项的新数组,但是不包括end的项(如果里面有负数,那么值就是数组长度加上此负数)
    splice(): 始终返回从数组中删除的项,如果没有删除则返回空数组
    删除:(起始位置[0],要删除的项数)
    插入:(起始位置[0],要删除的项数 ,要插入的项)
    替换: ( 起始位置[0], 要删除的项数 , 要插入的项)

  • 位置方法:
    indexOf(要查找的项,查找起点的索引 [0] ) 在没有查找到的情况下返回 -1
    lastIndexOf(要查找的项,查找起点的索引 [0] ) 在没有查找到的情况下返回 -1

  • 迭代方法:
    参数说明:
    迭代方法( fn:在每一项运行的函数,this:作用域对象)
    fn (value:数组项的值,index:该项在数组的位置,array:数组对象本身)
    方法:
    every( ): 对数组的每一项运行该函数,如果每一个项都返回true,则返回true
    filter( ): 对数组的每一项运行该函数,返回该项返回true组成的数组
    forEach( ): 对数组每一项运行该函数。没有返回值
    map( ): 对数组每一项运行该函数,返回每一次函数调用的结果生成的数组
    some( ): 对数组每一项运行该函数,任意一项返回true则返回true

  • 缩小方法:
    参数说明:
    缩小方法(fn:在每一项调用的函数,缩小基础的初始值)
    fn(上一个函数返回值,当前值,项的索引,数组对象)
    方法:
    reduce( ): 最后返回值,是最后一个fn的返回值
    reduceRight( ): 最后返回值,是最后一个fn的返回值 , 从最后一项向前进行遍历

3.Date类型:

  • Date.parse( ):
    参数格式:
    月/日/年
    月 日,年
    星期 月 日 年 时:分:秒 时区
  • Date.UTC( ):
    参数格式:
    年份,基于0的月份[,日,时,分,秒,毫秒]
  • Date.now( ):
    返回当前时间的毫秒
  • new Date( s ):
    s: 传入的毫秒数
  • 继承的方法:
    toLocaleString( ): 仅在调试时候有用(没用)
    toString( ): 没有什么用(没用)
    ValueOf( ): 返回毫秒数(有用)
  • 日期格式化方法:
    toDateString( )(没用)
    toTimeString( )(没用)
    toLocaleDateString( )(没用)
    toLocaleTimeString( )(没用)
    toUTCString( )(没用)

  • Date类型的方法:
    UTC和GMT:地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间(GMT)已经不再被作为标准时间使用。现在的标准时间——协调世界时(UTC)——由原子钟提供
    时间戳:
    getTime( ): 返回日期毫秒数,和valueOf( )的值一致
    年:
    getFullYear( ): 返回4位数年
    getUTCFullYear( ):返回UTC4位数年
    月:
    getMonth( ): 返回日期中的月,基于0
    getUTCMonth( ): 返回日期中的月,基于0
    日:
    getDate( ): 得到日期中的日
    getUTCDate( ): 得到UTC日其中的日
    星期几:
    getDay( ):得到日期中星期几
    getUTCDay( ):得到UTC日期中的星期几
    时:
    getHours( ): 得到日期中的小时
    getUTCHours( ): 得到UTC的小时
    分:
    getMinutes( ): 得到日期中的分钟
    getUTCMinutes( ): 得到日期中的UTC分钟
    秒:
    getSeconds( ): 得到日期中的秒
    getUTCSeconds( ):得到日期中的UTC秒
    毫秒:
    getMilliseconds( ):得到日期中的毫秒
    getUTCMilliseconds( ):得到UTC日期中的毫秒

4.RegExp类型

var expression = / pattern / flags;

  • 实例属性:
    1.global:布尔值,表示是否设置了g
    2.ignoreCase:布尔值,表示是否设置了i
    3.lastIndex:整数,表示修改下一个匹配项的字符位置,从0算起
    4.multiline :布尔值,表示是否设置了m标识
    5.source : 字符串表达式的字面量显示

  • 实例方法:
    .test( ):如果符合正则返回true,否则返回false
    .exec( ): 返回一个匹配项信息的数组array,否则返回null
    array:
    input: 此项是输入的正则表达式
    index: 此项是匹配的索引

5.Function类型

函数是对象,函数名是指针

  • a.没有重载(深入理解):
    原因:函数名是指针,所以同名函数实际上会在创建第二个函数的时候进行覆盖

  • b.函数声明和函数表达式区别:
    解析器会率先读取函数声明,并且在在执行任何代码之前进行访问;至于函数表达式,则会等到解析器执行到所在代码行,才能被解析。

  • c.作为值的函数:
    由于函数名本来就是一个变量,所以可以当作一个参数使用,也可以当做一个另一个函数的返回结果。

  • d.函数的内部属性:
    1. arguments:类数组对象,包括传入的所有参数
    2. arguments.callee:指针,指向拥有这个arguments对象的函数(如果函数内部调用,使用arguments.callee,不使用函数名是为了防止更换函数名后导致的调用失败)(严格模式报错)
    3. arguments.callee.caller: 这个函数被哪个函数进行了调用
    this: 函数执行的环境对象

  • e.函数属性和方法:
    1. 属性:
    - length: 函数希望接受的命名参数的个数
    - prototype: 保存所有引用类型的实例方法真正所在,而且是不可以枚举的。
    2. 方法:
    - apply(一个是运行函数作用域,一个是参数数组/arguments ): 在特定作用域中调用函数
    - call(一个是运行函数作用域,参数,参数,参数 ): 在特定作用域中调用函数
    - ??bind(this): 创建一个this的实例,然后绑定到传给bind( )函数的值。

  • f.基本包装类型:(1. Boolean 2.Number 3.String)
    1. 用处:每读取一个基本类型值,后台创建一个对应的的基本包装类型的对象,从而让我们能够调用一些方法类操作这些数据
    2. 引用类型和基本包装类型的区别:
    引用类型在执行流离开当前作用域之前就一直保存在内存里,而自动创建的基本包装类型对象,就在代码执行的一瞬间,被立即销毁。??所以我们无法为基本类型添加属性和方法。

            3. Boolean类型:(不建议使用)
            4. Number类型:(不建议使用)
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值