码迷,mamicode.com
首页 > 编程语言 > 详细

JS对象、函数、数组

时间:2019-08-23 17:38:20      阅读:77      评论:0      收藏:0      [点我收藏+]

标签:pen   container   prot   cti   items   对象   pos   content   data   

// 对象: Object

// 构造函数 Object :

  var obj = new Object();

  obj.id = 9;

  obj.name = "lucy";

  obj.age = 16;

  obj.gender = "male";

  console.log(obj);      //  输出结果: { id: 9, name: ‘lucy‘, age: 16, gender: ‘male‘ }

 

// 对象字面量

  var obj = {

    id:9,

    name:"lucy",

    age:16,

    gender:"male"

  }

  console.log(obj);      //  输出结果:{ id: 9, name: ‘lucy‘, age: 16, gender: ‘male‘ }

 

 

// 函数

// 函数声明

  function test(){

    console.log(" 我是函数声明!");      //   输出结果:我是函数声明!

  }

 

// 构造函数

  var test = function(){

    console.log(" 我是构造函数!");      //  输出结果:我是构造函数!

  }

 

// 函数调用

  function sayHello(){

    console.log("hello world");      //  输出结果: hello world

  }

  var info = sayHello;

  info();      //  第一次调用sayHello,输出一次 hello world

  var obj = {

    test:info

  }

  obj.test();      //  第二次调用sayHello,输出一次 hello world

 

 

// 数组:Array

// 构造函数 Array:

  var arr = new Array();

  arr[0] = 1;

  arr[1] = "tom";

  arr[2] = 16;

  arr[3] = "male";

  console.log(arr);      //    输出结果:[ 1, ‘tom‘, 16, ‘male‘ ]

 

  /* 注意: 如果Array构造函数传递的是数值,则会按照该数组创建包含给定项数的数组,即只定义数组长度,但是没有值.但是,此数组和 var arr = [];不一样,arr是空数组,长度为0 */

  var arr1 = new Array(3);

  console.log(arr1);      //   输出结果:[ <3 empty items> ]  即数组arr是空数组,其长度为3

 

// 数组字面量

  var arr = [1,"tom",16,"male"];

  console.log(arr);      //   输出结果:[ 1, ‘tom‘, 16, ‘male‘ ]

 

// 数组的访问

  var arr = [1,"tom",16,"male","hello world"];

  var result1 = arr[3];

  var result2 = arr[0];

  var result3 = arr[6];

  console.log(result1);      //   输出结果:male

  console.log(result2);      //   输出结果:1

  console.log(result3);      //    输出结果: undefined

 

// 数组的属性: length      /* 1、length不是只读的,即可以动态的改变 2、可以使用length给数组移除项或者添加新项 3、如果length设置为小于数组长度的项,会移除数组的项 */

  var arr = [1,"tom",16,"male","hello world"];

  console.log(arr.length);      //   输出结果:5

 

  // length小于数组原本的长度  ==> 移除项

  arr.length = 2;

  console.log(arr);      //   输出结果:[ 1, ‘tom‘ ]

 

  //length大于数组原本的长度  ==> 新增项,但是值是undefined

  arr.length = 6;      //  由于前面执行了arr.length = 2;故其数组已经改变,执行arr.length = 6;实则新增了四项空项,故输出结果如下

  console.log(arr);      //   输出结果:[ 1, ‘tom‘, <4 empty items> ]

  console.log(arr[5]);      //   输出结果:undefined

 

// 数组的遍历

  //   定义数组

  var arr = [5,4,3,2,1]; 

   //  使用for循环遍历数组的值,注意:i不能<=arr.length,如果小于等于,就相当于访问了arr[5];值是undefined

  for(var i=0;i<arr.length;i++){

    console.log(arr[i]);      

  }          /*      输出结果:

                    5

                    4

                    3

                    2

                    1

            */

 

 

//  模拟push,重构myPush    实现将 原打印数组长度和新数组 变成 打印新数组和原数组 

  Array.prototype.myPush = function(){

    //  创建一个空的 arr 数组
    var arr = [];

    //  将原来 arr=[1,2] 数组里的值复制到空的 arr 数组里
    for(var i=0;i<this.length;i++){
      arr[i] = this[i];
    }

    console.log(arr);      //  输出结果为:[1,2]

    var len = arr.length;      //  表示将 arr.length 的值赋值给 len,此时 len=2
    for(var key in arguments){        
      var item = arguments[key];      //  第一次循环表示 item = arguments[0] ,即item = ‘terry‘   第二次 item = arguments[1] = ‘larry‘  第三次 item = arguments[2] = ‘tom‘
      arr[len+(+key)] = item;       //  第一次循环表示 arr[2+0] = item,即 arr[2] = ‘terry‘  第二次 arr[2+1] = arr[3] = ‘larry‘    第三次  arr[2+2] = arr[4] = ‘tom‘ 

    }

    console.log(arguments);      //  输出结果为:[Arguments] { ‘0‘: ‘terry‘, ‘1‘: ‘larry‘, ‘2‘: ‘tom‘ }
    return arr;
  }

  var arr = [1,2];
  var result = arr.myPush("terry","larry","tom")      //   将创建出来的新 arr 数组赋值给 result,调用 myPush 方法将 "terry","larry","tom" 插入到新数组末尾,故原 arr 数组不变
  console.log(result,arr);    //  打印 result 即新 arr 数组和原来的 arr 数组,输出结果为: [ 1, 2, ‘terry‘, ‘larry‘, ‘tom‘ ]   [ 1, 2 ]

  var arr2 = [1,2];
  var result2 = arr2.push("terry","larry","tom");    //  将arr 数组赋值给 result2,调用 Push 方法将 "terry","larry","tom" 插入到 arr2 数组末尾,故原 arr2 数组已改变
  console.log(result2,arr2);      //  打印 result2 数组长度和原来的 arr2 数组,输出结果为: 5  [ 1, 2, ‘terry‘, ‘larry‘, ‘tom‘ ]

 

 


JS对象、函数、数组

标签:pen   container   prot   cti   items   对象   pos   content   data   

原文地址:https://www.cnblogs.com/lidyfamily/p/11401018.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!