JS对象、函数、数组

// 对象: 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‘ ]

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

时间: 2024-07-31 17:43:52

JS对象、函数、数组的相关文章

认真JS2-W3school上的JS2(JS对象、数组、函数和语句)

普通的字符串,也是有这些属性和方法的,但是直接的输出里面不会显示这些,而是直接显示他们的值,当作基本类型 当然他们也有包装类 构造函数的方法,可以先创建,后添加,很骚!不需要声明属性类型. 函数 因为都是var,所以参数也不需要类型 不需要声明返回类型 直接使用return返回即可 因为反正都是var 可以直接使用返回值 运算符,和别的语言一样,没什么好讲 字符串可以用+号来拼接 其实主要是=== 也和其他语言差不多 条件赋值,注意是赋值! if.else.switch 一样,没什么好讲 for

JS对象和数组

/* 数组和对象 [JavaScript 权威指南 第五版] */ /* 对象: 是一个无序属性集合, 每个属性都有自己的名字和值 */ /* 创建对象简单方法, 对象直接量 */ var obj = {}; var obj = {name: 'maxthon'}; var obj = {name: {}, text: []}; /* 可使用 new 操作符 */ var a = new Array(); var d = new Date(); var r = new RegExp('javas

判断一个js对象是不是数组

//今天突然想到一个问题,如何判断一个对象是不是数组 var arr = [0, 1, 2]; console.log(arr) //object, 显然不行 //查阅了很多资料,发现几个挺不错的方法 //方法一 function isArr(arr){ return Object.prototype.toString.call(arr) === '[object Array]'; } isArr(arr) //true //方法二 function isArray(arr){ return a

js对象转数组

var list = data.data; for(var i = 0; i < list.length; i++) { var newlist =[]; var listdata = Object.values(list[i].data); for(var j =0;j<listdata.length;j++){ newlist.push(parseInt(listdata[j])) } list[i].data = newlist; } Object.values 原生的的获取对象的值 O

JS对象与json字符串格式

1 <head> 2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 3 <title></title> 4 <script type="text/javascript"> 5 var obj = new Object(); 6 obj.Name = "八戒" 7 obj.Ag

js中的函数,Date对象,Math对象和数组对象

函数就是完成某个功能的一组语句,js中的函数由关键字 function + 函数名 + 一组参数定义;函数在定义后可以被重复调用,通常将常用的功能写成一个函数,利用函数可以使代码的组织结构更多清晰. 其语法结构为 function funName (arg0, arg1, … argN){        //statements    } function say_hello (name, msg){ alert(“hello”+ name + “:”+ msg); } say_hello(“d

JS 字符串对象 数组对象 函数对象 函数作用域

一.内置对象 object对象:ECMAScript 中的所有对象都由这个对象继承而来:Object 对象中的所有属性和方法都会出现在其他对象中 ToString() : 返回对象的原始字符串表示.ValueOf() : 返回最适合该对象的原始值.对于许多对象,该方法返回的值都与 ToString() 的返回值相同 11种内置对象 包括: Array ,String , Date, Math, Boolean, Number  Function, Global, Error, RegExp ,

JS基础-语法+流程控制语句+函数+内置对象【数组】

JS语法: Javascript基本数据类型:undefined/null/Boolean/number/string 复杂数据类型:object typeof用来检测变量的数据类型 typeof的使用方法有两种: (1)typeof 变量 (2) typeof(变量) undefined派生自null,所以undefined==null返回的结果是true 用于任何数据类型,Number()可以将非数值转化为数值,但是有一些数据是不能转化为数值的,如果这类数据通过Number()进行强制转化的

js中的数组对象排序

一.普通数组排序 js中用方法sort()为数组排序.sort()方法有一个可选参数,是用来确定元素顺序的函数.如果这个参数被省略,那么数组中的元素将按照ASCII字符顺序进行排序.如: var arr = ["a", "b", "A", "B"]; arr.sort(); console.log(arr);//["A", "B", "a", "b"

JS 对象数组Array 根据对象object key的值排序sort,很风骚哦

有个js对象数组 var ary=[{id:1,name:"b"},{id:2,name:"b"}] 需求是根据name 或者 id的值来排序,这里有个风骚的函数 函数定义: function keysrt(key,desc) {   return function(a,b){     return desc ? ~~(a[key] < b[key]) : ~~(a[key] > b[key]);   } } 使用: var ary=[{id:1,nam