javaScript 引用类型

Posted 柠檬先生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javaScript 引用类型相关的知识,希望对你有一定的参考价值。

Object类型

  创建Object 实例的属性有两种方式。

    1.使用new 操作符后跟Object 构造函数。

         var   person = new Object();

      person.name = "Nicholas";

      person.age = 29;        

    2.使用对象字面量表示。

     var person = {

        name:"Nicholas",

        age: 29

      }

     另外还有一种创建对象的方式是使用Object.create()方法,它是一个静态方法。  

    var obj = Object.create({x:1,y:2})

  Object构造函数创建一个对象包装器,对象是一种特殊的数据,对象用于属性和方法。

  访问属性的方法

    1.对象名.属性名           对象名.方法名();

    2.对象名["属性名"]   对象名["方法"]()

    var obj = {

        name:"柠檬先生",
        age:20,
        say:function(){

          console.log("名字:"+ this.name+"年龄:"+this.age)
        }
    }
    console.log(obj.name);
    console.log(obj["name"]);
    obj.say();
    obj["say"]();

    每个Object类型的实例共有的属性和方法:

      constructor    保存着用于创建当前对象的函数。

        function Tree(name){

          this.name = name
        }
        var theTree = new Tree("Redwood");

        console.log("theTree.constructor is"+ theTree.constructor);
输出: theTree.constructor is function Tree (name){this.name = name}

      hasOwnProperty: 用于检测给定的属性在当前对象的实例中是否存在。

        o= new object();
        o.propOne = null;
        o.hasOwnProperty(‘propOne‘);// 返回true
        o.propTwo = undefined;
        o.hasOwnProperty(‘propTwo‘);// 返回true

      isProtoypeOf:用于检查传入的对象是否是当前对象的原型。

        function Foo(){}
        function Bar(){}
        function Baz(){}
        Bar.prototype = Object.create(Foo.prototype);
        Bar.prototype = Object.create(Bar.prototype);

        var baz = new Baz();
        console.log(Baz.prototype.isPrototypeOf(baz));  // true
        console.log(Bar.prototype.isPrototypeOf(baz));  // true

      propertyIsEnumerble:用于检查给定属性能否使用for-in来枚举。

      toLocaleString():返回对象的字符串。

      var number = 3500;
      console.log(number.toLocaleString())  // Displays "3,500" if in U.S. English locale

      toString():返回对象的字符串表示。

        var o = new Object();
        o.toString(); // returns [object Object]

      valueOf(): 返回对象的字符串,数值,或布尔表示,通常和toString() 返回的值相同。   

      var obj   = {name:“张三”,age:"18"};

      console.log(obj.valueOf() === obj);// true 

 

Array 类型

    数组是一种类列表对象,它的原型中提供了遍历和修改元素的相关操作。

    创建数组的方法:

      隐式创建

          var arr = ["apple","oppo","vivo"];

      直接实例化:

          var arr = new Array("apple","oppo","vivo")

      创建数组并给数组元素赋值

                 var arr = new Array();

          arr[0] = "apple";

          arr[1] = "oppo";

          arr[2] = "vivo";               

    数组遍历方法:

        for 语句

          var  arr = [1,2,4,6];
          for(var i = 0,len = arr.length;i < ken;i++){
            console.log(arr[i])
          }

        forEach 语句

          var arr= [1,2,3,4,5];
          arr.forEach(function(item){

            console.log(item)
          })

           for-in 语句

        var obj = {name:‘test’,color:‘red‘,day:‘sunday‘,number:6};
        for(var key in obj){

          console.log(obj[key])
        }

      for-of 语句

        var arr= [{name:‘nmxs‘,5,‘test‘}];
        for(item off arr){

          console.log(item)
        }

      map 方法 :方法会给原数组的每个元素都按顺序调一次callback函数。

        var arr = [1,2,3,4];
        var firearr = arr.map(current = > current * 5)

      reduce  方法:  让数组中的前项和后项做某种计算

        var  wallets = [4,7,8,3];
        var totalMoney = wallets.reduce(function (countedMoney,wallet){

          return countedMoney + wallet.money
        },0)

      filter 方法:(不改变原数组) filter 为数组中的每一个元素调用一次callback 函数,并利用给所有使得callback 返回true 或 等价于 true 的值的元素创建一个新数组。

        var arr = [1,2,3,4,5];
        var morearr = arr.filter(function(number){

          return number > 3;
        })

      every  方法:   为数组中的每一个元素执行一次callback 函数,直到它直到一个使callback 返回false的元素。

        var arr = [1,2,3,4];
        var  result = arr.every(function(item,index){

          return item>0
        })

      some 方法; 为数组中的每一个元素执行一次callback 函数,直到找到一个使得callback返回一个真值。

      var arr = [1,2,3,4,5];
      var result = arr.some(function(item,index){

        return item > 3;
      })

     

  数组对象方法

      concat() 链接两个或者更多的数组,并返回结果。

        语法:arragObject.concat(arrayX,arrayX,....,arrayX)

      join() 把数组的所有元素放入一个字符串,元素通过指定的分割父进行分隔。

        var arr = ["George","John","Thomas"];
        console.log(arr.join("."))
        // George.John.Thomas

      pop()  删除并返回数组的最后一个元素。

        var arr = ["George","John","Thomas"];
        console.log(arr.pop()) //Thomas
        console.log(arr) // George John

      push() 像数组的莫问添加一个或者多个元素,并返回新的长度。

        var arr = ["George","John","Thomas"];
        console.log(arr.push("Amos")) // 4
        console.log(arr)// George,John,Thomas,Amos

      reverse()  颠倒数组中元素的顺序。

       var arr = ["George","John","Thomas"];
       console.log(arr.reverse()); // Thomas,John,George

      shift() 删除并返回数组的第一个元素。

       var arr = ["George","John","Thomas"];
       console.log(arr.shift()) // George
       console.log(arr) // John,Thomas

      slice() 从某个已有的数组返回选定的元素。

      var arr = ["George","John","Thomas"];
      console.log(arr.slice(1)) // George,John
      console.log(arr.slice(1,2)) // John

      sort()  对数组的元素进行排序。

      var arr = ["George","John","Thomas","1"];
      console.log(arr.sort()) // 1,George,John,Thomas

      splice() 删除元素,并向数组添加新元素。    

      var arr = ["George","John","Thomas","Amose"];
      console.log(arr.splice(1,0,"a")) // 像数组1 的位置添加元素 George a John Thomas Amose

      toString()  把数组转换为字符串,并返回结果。

      var arr = ["George","John","Thomas","Amose"];
      console.log(arr.toString()) // George,John,Thomas,Amose

      toLocaleString()  把数组转换为本地数组,并返回结果。

      var arr = ["George","John","Thomas"];
      console.log(arr.toLocaleString()) // George, John,Thomas

      unshift()   像数组的开头添加一个或更多元素,并返回新的长度。

      var arr = ["George","John","Thomas"];
      console.log(arr.unshift("Will")) // 4
      console.log(arr) // will,George,John,Thomas

      valueOf()    返回数组对象的原始值。

      var arr = ["George","John","Thomas"];
      console.log(arr.valueOf())

Date 类型

    Date 对象的语法 

      Date()来取当前天的日期
      Date()  // 来取当前天的日期
      //   Thu Nov 28 2019 22:13:23 GMT+0800 (中国标准时间)"

      getDate()  方法返回月份的某一天

      var D = new Date();
      console.log(D.getDate()) // 28

     getDay() 方法可返回表示星期的某一天的数字0~6

      var D = new Date();
      console.log(D.getDay()) //4

     getMonth() 方法可返回表示月份的数字  0一月 11 十二月   

      var D = new Date();
      console.log(D.getMonth()) // 10

    getFullYear()   方法可返回一个标识年份的4位数字。   

      var D = new Date();
      console.log(D.getFullYear()) // 2019

    getHours() 方法可返回时间的小时字段

    var D = new Date();
    console.log(D.getHours) // 23

    getMinutes()   方法可以返回时间的分支字段

    var D = new Date();
    console.log(D.getMinutes()) //16

    getSeconds()   方法返回时间的秒 0~59

     var D = new Date();
     console.log(D.getSeconds) // 22

    

 

 

 setSeconds() 设置当前时间段的秒

    var D = new Date();
    D.setSeconds(55);
    console.log(D.setSeconds(55)) //Thu Nov 28 2019 23:29:55 GMT+0800 (中国标准时间)

 


  

 


 

RegExp 类型

Function 类型

单体内置对象

  Global  对象

  Math 对象

以上是关于javaScript 引用类型的主要内容,如果未能解决你的问题,请参考以下文章

从 TypeScript 类型定义或 GraphQL 片段定义生成 JavaScript 空对象

Javascript - 原始类型与引用类型

javascript-引用类型--Object类型

VSCode自定义代码片段12——JavaScript的Promise对象

VSCode自定义代码片段12——JavaScript的Promise对象

JavaScript 值类型和引用类型的初次研究