【web】javascript基础巩固——引用类型(二)

来源:互联网 发布:数码兽传说 网络侦探pc 编辑:程序博客网 时间:2024/05/17 06:54

引用类型

1 引用类型是一种数据结构,从技术上讲是一门面向对象的语言,但是不具备传统的面向对象的语言所支持的类和接口等基本结构。
2 创建object实例有两种方式:第一种使用new操作符后跟object构造函数;另一种是使用对象字面量表示法。对象字面量是对象定义的一种简写形式。
3 访问对象的属性有两种方式:点表示法和方括号。方括号的主要优点是可以使用变量来访问属性。
4 Array类型:

  • 数组的每一项都可以保存任何类型的数据
  • 数组的length属性不是只读的,因此通过设置这个属性,可以从数组的末尾移除项或添加项。
  • 检测数组:value instanceof Array 或者 Array.isArray()
  • 转换方法:toString()-返回的值用逗号分隔。valueOf(), toLocaleString()
  • join()方法-使用不通分隔符构建字符串
  • 栈方法:数组可以表现的像栈一样,可以限制插入和删除项的结构,push()和pop()方法
  • 队列方法:数据为了表现的像队列,从列表的前端移除项,实现这一操作的方法是shift(),它能够移除数组中第一项并返回该项,同时数组长度减去1
  • 重排序方法:reverse():反转顺序,sort():默认升序排列,最小的值在最前面,为了实现排序,sort会调用每个数组项的tostring()转型方法,然后比较字符串。原始数组改变。
var value=[1,2,3,4,5,6]value.sort(function(x,y){    return x>y})
  • 操作方法:

    • concat(): 复制当前数组并将收到的参数添加到末尾 colors. concat (‘1’,’2’,’3’)//原数组不变
    • slice(): 接受一个或两个参数,即要返回值的起始和结束位置,不会改变原数组。
    • splice():会改变原数组,并始终返回一个数组,数组包含删除的项

      • 删除:指定两个参数:要删除的第一项的位置和要删除的项数:splice(0,2)会删除前两项。
      • 插入:提供三项:起始位置,0(要删除的项),和要插入的项。splice(2,0,’red’,’green’):从当前数组的位置2插入字符串‘red‘,green。
      • 替换:指定三个参数:起始位置,要删除项数,要插入的参数。
  • 位置方法:indexOf(),lastIndexOf()这两个方法都接受两个参数,要查找的项和表示查找起点位置的索引,其中,indexof()方法从数组开头向后查找,lastindexof从数组的末尾向前查找。这两个方法都返回要查找的项在数组的位置。

  • 归并方法:reduce()/reduceRight()从第一项开始,遍历到最后/相反。接受四个参数,前一个值,当前值,项的索引和数组对象。
  • 迭代方法:5个迭代方法每个方法都接受两个参数,要在每一项上运行的函数和运行该函数的作用域对象,传入这些方法的函数会接受三个参数,数组项的值,该项在数组中的位置和数组对象本身。
    • every()
    • some()
    • filter()
    • forEach()
    • map()

5 Date类型

  • Date.parse():接受日期的字符串参数,然后尝试转换为毫秒数
  • Date.now():调用这个方法的日期和时间和毫秒数
  • Date.toString():eg:”Thu Dec 14 2017 16:46:50 GMT+0800 (CST)”

注:没有直接的毫秒数转成特定日期格式的函数,需要自己写

6 RegEXP类型
g:表示全局模式
i:表示不区分大小写
m:表示多行模式
var pattern = /pattern/flags
7.函数

  • 函数是对象,函数名是指向对象的指针
  • 函数内部属性:argument,this

    递归中使用:argument.callee指向函数名 
  • 函数的属性:length和prototype属性。

    **prototype属性中保存了所有的实例方法**    
  • 函数的方法:apply()和call()
    传递参数并非其真正用武之地,真正强大的地方是能够扩充函数赖以运行的作用域最大的好处,就是对象不需要与方法有任何耦合的关系。
    bind():创建函数的实例。
    8 基本包装类型
    三个特殊的引用类型:boolean, number,string
    Number:
    num.toFixed()会按照指定的小数位返回数值的字符串表示。
    num.toExponential(1)接受一个参数,该参数同样也是指定输出结果重的小数位数。
    num.toPrecision()
    String:

  • 字符方法:str.charAt(1);//输出该索引下的字符
    str.charCodeAt(1)//输出该索引下的字符编码/或者直接用方括号。

  • 字符串方法:concat()(一般用加号)

    • slice()
    • substr()
    • substring()
  • 字符串位置方法:indexOf(),lastIndexOf()

  • trim()方法:创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果。
  • 字符串大小写转换:

    • toLowerCase()
    • toLocaleLowerCase()
    • toUpperCase()
    • toLocaleUpperCase()
  • localeCompare()比较字符串是否相等(相等则为0)

  • fromCharCode()
  • 单体内置对象:除了以上的内置对象外,又定义了两个单体对象:Global和Math
  • Global:内置方法:encodeURI()和encodeURIComponent()方法(为了去除无效字符);
    decodeURI(),decodeURIComponent()

  • Global对象的属性:undefined,NAN,Infinity…一些内置对像…..

原创粉丝点击