文档章节

Javascript 引用类型Object,Array

专业填坑
 专业填坑
发布于 2017/04/28 17:38
字数 674
阅读 10
收藏 0

Object

var person = new Object();
person.name = 'zhangsan';

Object居然是叫做构造函数,还有一种可以创建Object实例(对象字面量表示法),不会调用Object构造函数

var person = {
    name : 'zhangsan'
}
如何使用属性值
  1. person.name
  2. person["name"]
    以上两种方式都可以,person.name更直观,person["name"]可以用变量访问属性person[variable],或者出现关键字·特殊字符等等,例如 , person["hello world"]

Array

两种创建方式:

var colors = Array();
var colors = []; // 不会调用Array构造函数

需要注意第二种方式,不要这么干var colors = ["red","green",],这样会变成3个长度,有些游览器是2个长度,一定要把最后的逗号去掉

数组长度问题

colors.length可以获取数组长度

var colors = [];
colors[99] = 0;
alert(colors.length); // 此时数组的长度变为100,其它0到98位置的值都是undefined
使用isArray()检测数组,为什么要这样好像是有原因的,但是我不懂,先做个标记吧,以后再看看
一些数组函数的使用:
var colors = ["red", "blue", "green"];
console.log(colors.toString()); // 逗号隔开的字符串
console.log(colors.join(">")); // 以>隔开的字符串,默认是以逗号隔开

var len = colors.push("pike", "black"); // 向数组末尾添加多个元素,返回修改后数组的长度
console.log(colors);
console.log("The length of colors is " + len);

var element = colors.pop(); // 数组末尾移除一个元素,返回被移除的元素
console.log("The last element is " + element2 + " has been removed");

console.log(colors);
var element2 = colors.shift(); // 移除首页元素,返回被移除的元素
console.log("The first element is " + element2 + " has been removed");

var len2 = colors.unshift("organce", "white"); // 向数组头部插入多个元素,返回修改后数组的长度
console.log(colors);
console.log("The length of colors is " + len2);

colors.reverse(); // 反转数组
console.log(colors);
数组排序问题

调用 colors.sort() 可以用来排序,但是sort比较的是字符串,即使是数组元素是数字,也会调用toString()转换为字符串在比较.

var num = [1,5,10,15,20];
num.sort();
console.log(num); // [1, 10, 15, 20, 5] 真的很尴尬

解决方法如下:

function compare(value1, value2)
{
	return value1 - value2;
}
var num = [1,5,10,15,20];
num.sort(compare); // 传递个参数
console.log(num);
复制副本

引用类型复制操作其实是复制指针,如果想要获得一个副本,可以用 concat 方法,如下

var num = [1,5,10,15,20];
var num2 = num.concat();
num[0] = 1237;
console.log(num); // [1237, 5, 10, 15, 20]
console.log(num2); // [1, 5, 10, 15, 20]

concat()方法可以基于当前数 组中的所有项创建一个新数组。具体来说,这个方法会先创建当前数组一个副本,然后将接收到的参数 添加到这个副本的末尾,最后返回新构建的数组。 e.g. var num2 = num.concat( 25, 30, [35, 40] );

© 著作权归作者所有

共有 人打赏支持
专业填坑
粉丝 4
博文 74
码字总数 9463
作品 0
广州
程序员
【摘】【编写可维护的JavaScript】判断javascript中的类型

判断javascript中的类型--编写维护的JavaScript 检测原始值 你希望一个值是字符串、数字、布尔值或undefined,最佳选择是使用typeof运算符 typeof运算符的独特之处在于,将其用于一个未声明的...

jackzlz
2015/08/23
0
0
判断javascript数组的方法

判断javascript数组的方法 var is_array=function(){ return value && } 我们知道,javascript是一种弱类型的语言,并且,javascript中的一切实质上都是对象。那么,在javascript中如何进行对...

首席xx师
2013/06/06
0
2
JavaScript之数据类型

前言 JavaScript一共有6中数据类型: 基本数据类型(5):字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、空(Null)、未定义(Undefined) 复杂数据类型(1):对象(Object...

苦读代码
08/15
0
0
细说JavaScript数据类型及转换

细说JavaScript数据类型及转换 JavaScript数据类型 1.Boolean(布尔) 布尔:(值类型)var b1=true;//布尔类型 2.Number(数字) 数值:(值类型)var n1=3.1415926;//数值类型 n1.toFixed...

开元中国2015
2015/07/13
0
0
JS typeof 与 instanceof

JS中常用来判定变量类型的两个函数为 typeof 和 instanceof typeof 的结果有 undefined, number, boolean, string, function, object[null, Array,String,Date.....] 要注意的地方是 typeof......

big_cat
2015/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

jquery创建类似于java的map

var map = {}; // Map map = new HashMap(); map[key] = value; // map.put(key, value); var value = map[key]; // Object value = map.get(key); var has = key in map; // boolean has = ......

SuperDabai
31分钟前
0
0
java大数据转换16进制转10进制

public static void main(String[] args) {String hex = "0xdbf3accc683297cf0000";BigInteger amount = new BigInteger(hex.substring(2), 16);System.out.println(amount);......

任梁荣
昨天
1
0
OSChina 周六乱弹 —— 目测我们程序员丁克的几率不大

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @真Skr小机灵鬼儿:8.13分享Jocelyn Pook/Russian Red的单曲《Loving Strangers》 《Loving Strangers》- Jocelyn Pook/Russian Red 手机党少...

小小编辑
昨天
9
3
TypeScript基础入门 - 函数 - 剩余参数

转载 TypeScript基础入门 - 函数 - 剩余参数 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.2.1 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能...

durban
昨天
1
0
OpenCV边缘检测算子原理总结及实现

1. 拉普拉斯算子 原理:是一种基于图像导数运算的高通线性滤波器。它通过二阶导数来度量图像函数的曲率。 拉普拉斯算子是最简单的各向同性微分算子,它具有旋转不变性。一个二维图像函数的拉...

漫步当下
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部