• JavaScript(3)


    1、创建对象
    JavaScript中可以通过直接量、关键字new和Object.create函数来创建对象。
    1.1、通过对象直接量的方式创建
     对象直接量是一个表达式,这个表达式的每次运算都创建并初始化一个新对象。

    var point1={x:0,y:0};//两个属性的对象  
    var point2={x:point1,y:point1.y};//更复杂的值  
    var apple ={"fruit color":"red",//属性名字有空格,必须用字符串表示  
    "today-price":5.4 //属性名字有连字符,必须用字符串表示  
    }
    

    1.2、通过new创建对象
     new运算符创建并初始化一个对象,关键字后要跟一个函数调用,函数称为构造函数。JavaScript语言核心中的原始类型都包含内置构造函数。

    var b = new Arrary();//空数组
    var c = new Date();//当前时间的date对象
    

    1.3、通过Object.create()创建对象

    var obj8 = Object.create(null)//创建一个对象的原型属性
    var obj9 = Object.create(Object.prototype);//prototype对象的原型属性
    

    2、数组
    数组是值都等的有序集合。数组里面的值叫做用元素,而且每个元素在数组中都有一个位置,以数字表示,称为索引。
    2.1、创建数组
    使用数组直接量是创建数组最简单的方法,在方括号中将数组元素用逗号隔开即可。

    var fruit = ["apple","orange"];//两个数值的数组
    var number =[1,2,true,"abc"];//不同类型的元素
    

    数组值不一定要是常量,可以是任意表达式,也可以包含对象或者其他的数组,

    var numbers = [1,2,3,a+1,a+2];
    var a  =[[2,{x:2,y:3}],[3,{x:4,y:5}]];
    

    调用构造函数Array()是创建数组的另一种方法,可以用以下三种方式调用构造函数:
    (1) 调用时没有参数。
    var data = new Array();
    该形式创建一个没有任何元素的空数组,等同于数组直接量[]。
    (2)调用时有一个数值参数,它指定长度。
    var data = new Array(5)
    指定数组的长度,用来预分配一个数组空间。注意,数组中没有存储值,甚至数组的索引属性还未定义。
    (3)显示指定两个或多个数组元素或者数组的一个非数值元素。
    var data = new Array(1,2,3,"hello","world");
    2.1、数组元素的添加和删除
    (1)添加

    test[0] = "a";
    test[2] = "b"; 
    

    也可以使用push()方法在数组末尾增加一个或多个元素,

    test.push("c");
    test.push("d","f");
    

    使用push()方法在数组尾部压入一个元素与给数组test[test.length]赋值是一样的。可以使用unshift()方法在数组的首部插入一个元素,并且将其他元素依次移动到更高的索引处。
    (2)删除
    可以使用delate运算符来删除数组元素,

    delate test[1];
    

    使用delate不会修改数组的length属性;可以使用length属性重新设置数组的长度删除数组尾部的元素。数组还有pop()方法(和push一起使用),后者一次使长度减少1并返回被删除元素的值。还有一个shift()方法(和unshift一起使用),从数组头部删除一个元素。

    fruits.pop();              //fruits结果输出:banana,orange,apple
    var fruits=["banana","orange","apple","mango"];
    fruits.shift();            //fruits结果输出:orange,apple,mango
    

    2.2、多维数组

    a[0]=[];//(0,0)(0,1)(0,2)
    a[1]=[];//(1,0)(1,1)(1,2)
    a[2]=[];//(2,0)(2,1)(2,2)
    

    2.3、数组方法
    (1)join()
    Array.join()方法将数组中的所有元素都转化为字符串并连接在一起,返回最后生成的字符串。

    console.log(arr.join());//打印出1,2,3
    console.log(arr.join("-"));//1-2-3
    console.log(arr);//[1,2,3](原数组不变) 
    

    (2)reverse()
    Array.reverse()方法将数组中的元素颠倒顺序,返回逆序的数组。

    console.log(arr.reverse());//[3,51,24,13]
    

    (3)sort()
    Array.sort()方法将数组中的元素排序并返回排序后的数组。
    (4)concat()
    Array.concat()方法创建并返回一个新数组,它的元素包括调用concat()的原始数组的元素和concat()的每个参数。

    var arrCopy=arr.concat(9,[11,13]);
    console.log(arrCopy);//[1,3,5,7,9,11,13]
    //
    var arrCopy2=arr.concat([9,[11,13]]);
    cinsole.log(arrCopy2);//[1,3,5,7,9,Array[2]]
    cinsole.log(arrCopy2[5]);//[11,13] 
    

    (5)slice()
    Array.slice()方法返回指定数组的一个片段或者子数组。

    var arrCopy=arr.slice(1);
    var arrCopy2=arr.slice(1,4);
    console.log(arrCopy);//[3,5,7,9,11]
    console.log(arrCopy);//[3,5,7]
    

    (6)splice()
    Array.splice()方法是数组中插入或者删除元素的通用方法。
    splice()方法的第一个参数指定了插入或者删除的起始位置。第二个参数指定了因该从数组
    中删除的元素个数。如果省略第二个参数,则从起始点开始到数组结尾的所有元素所有元素都将被删除。splice()返回一个有删除元素组成的数组,或者如果没有 删除元素就返回一个空数组。
    (7)push()和pop()
     push():可以接收任意数量的参数,把他们逐个添加到到数组末尾,并返回修改后数组的长度。
     pop():数组末尾移除最后一项,减少数组length值,然后返回移除项。

    var count = arr.push("d","e");
    console.log(count);//5
    console.log(arr);//["a","b","c","d","e"]
    var item=arr.pop();
    console.log(item);//e
    console.log(arr);//["a","b","c","d"]
    

    (8)shift()和unshift()
     shift():删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined。
     unshift():将参数添加到原始数组开头,并返回数组的长度。
    (9)toString()
    (10)indexOf和lastIndexOf()
     indexOf():接收两个参数,既要查找的项和(可选的)表示查找起点位置的索引。
     lastIndxOf():接收两个参数,即要查找的项和(可选的)表示查找起点位置的索引。

    console.log(arr.indexOf(5));//2
    console.log(arr.lastIndexOf(5));//5
    console.log(arr.indexOf(5,2));//2
    console.log(arr.lastIndexOf(5,4))//2
    console.log(arr,indexOf("5"));//-1
    

    (11)forEach()
     forEach():对数组进行遍历循环,为每个元素调用指定的函数。

    arr.forEach(function(x,index,a){
     console.log(x+'|'+index+'|'+(a===arr));
    });
    //输出是:
    //1|0|true
    //2|1|true
    //3|2|true
    //4|3|true
    //5|4|true
    

    (12)map()
     map():指映射,对数组中的每一项 运行给定函数,返回每次函数调用的结果组成的数组。

    var arr2=arr.map(function(item){
    return item*item;
    });
    console.log(arr2);//[1,4,9,16,25]
    

    (13)filter()
     filter(): 过滤功能,数组中的每一项运行给定函数,返回满足条件组成的数组。

    var arr2=arr.filter(function(x){
    return x<10; 
    });
    console.log(arr2);//true
    var arr3=arr.filter(function(x){
    return x<3; 
    });
    console.log(arr3);//false
    

    (14)some()
     some:判断数组中是否存在满足条件的项,只要一项满足条件,就会返回true。

    var arr2=arr.some(function(x){
    return x<3; 
    });
    console.log(arr2);//true
    var arr3=arr.some(function(x){
    return x<1; 
    });
    console.log(arr3);//false
    

    (15)reduce()和reduceRight()
     reduce()方法从数组的第一项开始,逐个遍历到最后。而reduceRight()则从数组的最后一项开始,向前遍历到第一项。

    var sum = values.reduceRight(function(prev,cur,index,array){
    return prev+cur;
    },10);
    console.log(sum);
    
    有些压力总是得自己扛过去,说出来就成了充满负能量的抱怨。寻求安慰无济于事,还徒增了别人的烦恼。而但你独自走过艰难险阻,一定会感谢当初一声不吭要牙坚持这的自己。没人在乎你怎样在深夜痛苦,也没人在乎你辗转反侧要熬过几个秋。外人只看结果,自己独撑过程。等我们都明白了这个道理,便不会再在人前矫情,四处诉说以求安慰。
  • 相关阅读:
    Delphi的几个跨平台小游戏例子。
    Delphi判断某个类是否实现了某个接口
    Delphi RAD Server 应用服务基础平台
    Delphi XE10.1 引用计数
    运行Delphi XE10的MongoDB例程,测试Delphi插入记录性能
    在Windows下编译mongo-c-driver 1.3.x
    Delphi 高效读写锁
    Delphi XE10在 Android下调用静态库a文件
    Delphi 调试连接 任意Android手机/平板/盒子
    Some cool FireMonkey multi-device components
  • 原文地址:https://www.cnblogs.com/Yokemadman/p/10201754.html
Copyright © 2020-2023  润新知