zoukankan      html  css  js  c++  java
  • javascript 引用类型

    1  Object 类型

    var person = new Object() ; person.name = "summer"; 和 var person = {name:'summer'};是等价的。

    2  Array 类型

    (1)var colors = new Array(); 和 var colors = Array();和var colors = []; 是等价的。

    (2)数组中的length 属性不仅是只读的,即通过设置这个属性,可以从数组的末尾移除项或添加新项。

    实例1:

    var colors = ['red' , 'blue' , 'green'];

    colors.length = 2;

    alert(colors[2]); //undefined

    实例2:

    var colors = ['red' , 'blue' , 'green'];

    colors.length = 4;

    alert(colors[3]); //undefined,但是数组已经增加
    colors[colors.length] = 'black';//数组上再加一个

    实例3:

    var colors = ['red' , 'blue' , 'green'];

    colors[99] = 'black';

    alert(colors.length); //100

    (3)检测数组:value instanceof Array  和 Array.isArray(value)  

    (4)装换方法:toLocalString()、toString()、valueOf()以及join

    实例1:

    var colors = ['red' , 'blue' , 'green'];

    alert(colors.join("||")); //red||green||blue

    (5)栈方法(LIFO)后进先出:colors.push("red","green"......)(加在后面)和colors.pop()(从后面开始删除)

    (6)队列方法(FIFO)先进先出:colors.unshift("red","green"......)(加在前面)和colors.unshift()(从前面开始删除)

    (7)重排方法:reverse()和sort()

    实例1:

    var values = [1,2,3,4,5]'

    values.reverse();

    alert(values);//5,4,3,2,1

    实例2:

    var values = [0,1,5,10,15]'

    values.sort();

    alert(values);//0,1,10,15,5  由于sort没有传递参数,是按照字符串来排列

    实例2:

    function compare(value1,value2){

      if(value1 < value2){

        return -1;

      }else if(value1 > value2){

        return 1;

      }else{

        return 0;

      }

    }

    var values = [0,1,5,10,15];

    values.sort(compare);//传入函数参数

    alert(values);//0,1,5,10,15

    (8)操作方法:concat()、slice()、splice()

    concat():基于当前数组中的所有项创建一个新数组

     实例1:

    var colors = ['red','green','blue'];

    var colors2 = colors.concat('yellow',['black','brown']);

    alert(colors);//red,green,blue

    alert(colors2);//red,green,blue,yellow,black,brown

    slice():基于当前数组中一个或多个项创建一个新数组

     实例2:

    var colors = ['red','green','blue','yellow','purple'];

    var colors2 = colors.slice(1);//一个参数,从1开始到结束 

    var colors3 = colors.slice(1,4);//两个参数,从1到4,不包括结束项

    alert(colors2);//green,blue,yellow,purple

    alert(colors3);//green,blue,yellow

    splice():删除、插入、替换(splice() 方法始终都会返回一个数组,该数组包含从原始数组中删除的项,如果没有删除项,返回空数组)

    删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数,如splice(0,2)会删除数组中的前两项

    插入:可以向指定位置插入任意数量的项,只需要提供3个参数:起始位置、0(要删除的项数)和要插入的项。如splice(2,0,"red","green","yellow".....)会从当前数组的位置2开始插入后面的字符串

    替换:可以向指定位置 插入任意数量,而且同时删除任意数量的项,只需指定3个参数:起始位置、要删除的项数和要插入的任意数据的项。插入的项数不必与删除的项数相等。如splice(2,1,"red","green"....)

     实例3:

    var colors = ['red','green','blue'];

    var removed= colors.splice(0,1);

    alert(colors );//green,blue

    alert(removed );//red

    removed= colors.splice(1,0,"yellow","orange");

    alert(colors );//green,blue,yellow,orange

    alert(removed );//空

    removed= colors.splice(1,1,"red","purple");

    alert(colors );//green,red,purple,orange,blue

    alert(removed );//空

    (9)位置方法:indexOf() 和 lastIndexOf(),这两个方法都接收两个参数,要查找的项和(可选的)表示查找起点位置的索引。indexOf()从数组的开头开始向后查找,lastIndexOf() 则从数组的末尾开始向前查找。返回查找项在数组中的位置,没有则返回-1,用的是全等操作符,即严格相等。

    (10)迭代方法:every()、filter()、forEach()、map()、some()

    (11)归并方法:reduce()和reduceRight()

  • 相关阅读:
    【leetcode】1630. Arithmetic Subarrays
    【leetcode】1629. Slowest Key
    【leetcode】1624. Largest Substring Between Two Equal Characters
    【leetcode】1620. Coordinate With Maximum Network Quality
    【leetcode】1619. Mean of Array After Removing Some Elements
    【leetcode】1609. Even Odd Tree
    【leetcode】1608. Special Array With X Elements Greater Than or Equal X
    【leetcode】1603. Design Parking System
    【leetcode】1598. Crawler Log Folder
    Java基础加强总结(三)——代理(Proxy)Java实现Ip代理池
  • 原文地址:https://www.cnblogs.com/summerzi/p/4143427.html
Copyright © 2011-2022 走看看