美文网首页
$5 引用类型

$5 引用类型

作者: xiaoguo16 | 来源:发表于2017-04-29 12:25 被阅读0次

    引用类型是一种数据结构,描述了一类对象所具有的属性和方法。它具有以下几种形式:

    Object类型:

    1.创建Object实例的方法:

    a. new操作符

          var person = new Object();
          person.name="gly";
    

    b.对象字面量

          var person={
              name:"gly"
          }
    

    2.访问对象属性方法:

    a.点表示方法(一般性方法)
    person.name

    b.方括号表示方法(当属性为变量时可以采用该方法)
    person["name"]

    Array类型

    1.创建数组
    a. Array

    var colors=new Array();
    

    b. 数组字面量

    var colors=[1,2,3]
    

    2.检测数组:Array.isArray(value)

    Paste_Image.png

    3.栈方法:push() pop() //在尾部加入删除
    4.队列方法:shift() push() //shift() 在头部删除
    反队列方法:unshift() pop() //unshift()在头部加入

    5.重排序方法:

    a.反转数组reverse()
    b.排序sort() //注意:sort()方法比较的是字符串,对于数值型会排序错误,并且会直接修改原数组
    字符串排序解决方法:加入compare()函数进行比较


    Paste_Image.png

    6.操作方法:

    a.创建副本以及合并concat()
    可以创建原数组的副本并且将新添加的放到副本中


    Paste_Image.png

    b.切割数组中的一部分slice()


    Paste_Image.png

    c.大boss,最强大的方法,可以做删除、插入、替换splice()

    Paste_Image.png

    第一个参数为从第几个位置开始,第二个参数为要删除几项,第三个参数为需要加入的内容,最后更改的是原数组a,bcd是删除掉的数组。

    7.查找元素位置方法:

    a. indexOf()从前往后查:第一个参数为要查找的元素,第二个参数为查找的起始位置
    b. lastIndexOf()从后往前查

    Paste_Image.png

    8.迭代方法:

      a. every()  //每一项都符合返回true
      b. some()  //有一项符合就返回true
      c. forEach()  //无返回值
      d. filter()  //返回符合的原数据
      e. map()  //返回结果集
    
    Paste_Image.png

    9.归并方法:
    reduce() reduceRight()二者方向不同,这两个方法都会对数组进行迭代,四个参数

    Paste_Image.png

    Date类型

    创建方式:var now=new Date();

    Paste_Image.png

    返回表示日期的毫秒数:
    a. Date.parse()
    b. Date.UTC()

    Paste_Image.png

    获取现在的时间:Date.now()

    RegExp类型

    创建方式:
    
    a. 字面量方法:
    var pattern= /bat/i;
    
    b.构造函数方法:
    var pattern=new RegExp("bat","i");
    
    g :全局模式
    i :忽略大小写
    m:多行模式
    

    Function类型

    函数名是一个指向函数对象的指针!!!!

    1.创建方式:
    a. 函数声明:

        function sum(a,b){
            return a+b;
        }
    

    b.函数表达式:

        var sum=function(a,b){
            return a+b;
        };
    

    c.Function构造函数

        var sum=new Function("a","b","return a+b");
    

    2.函数声明与函数表达式的不同:

    函数声明提升

    Paste_Image.png

    变量sum1提升,但是不会保存对函数的引用。

    Paste_Image.png

    3.函数内部属性

    1. callee : 一个指针,指向拥有arguments对象的函数(arguments: 保存传入函数的所有参数,以数组形式保存)
    function factorial(num){
        if(num<=1)
         return 1;
       } else{          
          return num*arguments.callee(num-1);  //argument.callee等价于factorial,好处:函数变名时对内部没有影响
       }
    }
    
    1. caller: 谁调用了该函数,返回它的引用

    谁调用了b()??哦,是a(),那就返回a()的引用,也就是函数a()

    Paste_Image.png

    4.函数属性和方法:
    a. 在特定的作用域中调用函数: apply(作用域,参数数组)
    call(作用域,参数)

    用sayColor对象的方法作用于window和o对象上。(调用其他对象的方法)

    Paste_Image.png

    b. bind():也是在特定的作用域中调用函数,只是bind方法会产生一个函数实例,只有对它调用时才会得到结果。所以如果想立即得到结果就用apply(),call(),如果不是,则使用bind().

    基本包装类型:

    Boolean Number String(注意与boolean number string不同)

    基本包装类型:读取基本类型时,后台会创建一个基本包装类型对象,让我们可以对其调用方法操作数据。

    Paste_Image.png

    在执行第二行代码时,后台会有以下过程:
    a. 创建string类型的一个实例; var s1= new String("abcd");
    b. 在实例上调用方法; var s2=s1.substring(s1);
    c. 销毁实例。 var s1=null;

    基本包装类型与引用类型的区别:生存期不同。(引用类型只有在脱离作用域后才会销毁,基本包装类型只有在执行该代码时才存在,一旦执行完毕就销毁)

    Paste_Image.png

    构造函数(有new)与转型函数(无new)的不同:

    Paste_Image.png

    String类型:

    String对象提供了很多字符串操作的方法:
    1.字符串拼接concat()
    2.提取部分字符:slice() substring() substr()
    3.确定字符串的位置indexOf() lastIndexOf()
    4.删除前后的空格trim()
    5.字符串大小写方法:toLowerCase() toUpperCase() toLocaleLowerCase() toLocaleUpperCase()
    6.字符串匹配:match() search() replace() split()
    7.字符串比较: localeCompare()

    单体内置对象

    在执行代码之前,这些对象已经存在了。

    1.Global对象
    eval()方法:解析字符串,会将字符串当作实际的代码执行
    eval("console.log(1)") //1
    eval()中创建的变量和函数不会被提升。

    Global对象如何访问:在Web浏览器中,Global对象是window对象的一部分。

    2.Math对象:提供完成计算的属性和方法。
    最大最小max() min()
    向上舍入向下舍入四舍五入 ceil() floor() round()
    0-1随机数 random()
    产生一个介于[low,up]之间的整数的函数:

        function selectFrom(low,up){
            var choices=up-low+1;
            return Math.floor(Math.random()*8+2);
        }
    

    相关文章

      网友评论

          本文标题:$5 引用类型

          本文链接:https://www.haomeiwen.com/subject/fnjzzttx.html