JS对象函数数组
Posted lidyfamily
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘ ]
以上是关于JS对象函数数组的主要内容,如果未能解决你的问题,请参考以下文章