`
asyty
  • 浏览: 345550 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

JavaScript数据类型,类,对象/数组区别

阅读更多

几天木有写东西了,随便写点东西。

 

关于JSON(JavaScript Object Natation),简单的说就是轻量级的用于交换数据的格式,基于javascript 语法的子集,即数组和对象表示。(一不小心js部分写长了点,json放下一篇好了)

 

首先说说JS的对象和数组吧。

 

Javascrip数据类型,对象与数组:

javascript 的数据结构主要有以下四种基本数据类型,string,number,boolean,null,js还有复杂的数据结构,即对象。我们可以把数组看成一种特殊的对象。对象和数组里都可以包含不同的类型,包括对象和数组。

 

js对象的定义如下:

 

var boy= {
        "name": "xiaoming",       
        "age" : 4,
        "city" : "杭州"
        "hasBrother":true
};

 

 对象可以看成是容器,里面装了许多的key-value对,类似于java里Map<String,Object>。我们可以这样获取值

 

alert("name = " + boy["name"] );

alert("age=" + boy.age);

 

 

而数组可以和对象最大的不同是,数组是有序的,不是采用key的方式获取值,而是通过index来索引,相对对象来说还多了length属性。

 

var array=["hello", 12, true , null];
alert(array[0]);

 

当然 对象和数组是可以混用的,如下简单地混合,当然可以更复杂。

 

var array=["hello", 12, true , {"name": "xiaoming",  "age" : 4}];

var boy= {"name":"xiaoming", "brothers":["xiaohuang","xiaohong"]};

需要注意的是,平时我们可以通过这样定义

 

var a = [1,2,3]; //定义一个数组
alert(a.length); //结果为3

a["name"] = "xiaoming"; //我们再给它赋值
alert(a.length); //结果还是为3

a.push(4);
alert(a.length); //结果为4

上面的代码a["name"]="xiaoming"是给a数组增加了一个属性叫name,而不是在数组里添加数据。

 

其实可以把数组想象成这种格式,即特殊的对象(type这个属性是随便写的,)

 

var array= {
        "type":"array",
        "value":[1,2,3],
        "length":3
};
加上 a["name"] = "xiaoming"; 之后,array的变成这样,并不影响数组本身的值。
array= {
	"type":"array",
	"name":"xiaoming",
	"value":[1,2,3],
        "length":3
};

就写这么多吧,本来是想写JSON的,不过js写了这么长,单独一篇算了。。。。。

 

补充javascript类的定义 zz http://www.iteye.com/topic/177982

如何定义一个js类,包括js公有成员定义、私有成员定义、特权方法定义的简单示例(类似于JAVA里的public private 和protect)

 

 

<script>	
	//定义一个javascript类
	function JsClass(privateParam/*  */,publicParam){//构造函数
		var priMember = privateParam;	//私有变量
		this.pubMember = publicParam;	//公共变量
		//定义私有方法
		function priMethod(){
			return "priMethod()";
		}
		//定义特权方法
		//特权方法可以访问所有成员
		this.privilegedMethod = function(){
			var str = "这是特权方法,我调用了\n";
			str += "        私有变量:" + priMember +"\n";
			str += "        私有方法:" + priMethod() +"\n";
			str += "        公共变量:" + this.pubMember +"\n";
			str += "        公共方法:" + this.pubMethod();
			
			return str;
		}		
	}
	//添加公共方法
	//不能调用私有变量和方法
	JsClass.prototype.pubMethod = function(){
		return "pubMethod()";
	}

	//使用 JsClass的实例
	JsObject = new JsClass("priMember","pubMember");
	
	//alert(JsObject.pubMember);//弹出pubMember信息
	//alert(JsObject.priMember);//弹出undefined信息
	//alert(JsObject.pubMethod());//弹出pubMethod信息
	//alert(JsObject.priMethod());//弹出"对象不支持此属性或方法"的错误
	alert(JsObject.privilegedMethod());
</script>
 

 

转载请注明源

http://asyty.iteye.com/blog/1260933

 

 

分享到:
评论
3 楼 小月峰 2011-12-15  
你的帖子 都很有研价值 学习下
2 楼 asyty 2011-12-03  
zhuzhuaijq 写道
oh 学习了 !!!

呵呵 刚又补充了点东西
1 楼 zhuzhuaijq 2011-12-02  
oh 学习了 !!!

相关推荐

    javascript判断一个变量是数组还是对象

    我们能够使用typeof判断变量的身份,判断字符串得到string,数字和NaN得到number,函数会得到function等,但是判断数组,对象和null时都会得到object,详细请看js数据类型,这就是typeof的局限性,并不能准确的判断...

    JavaScript 引用类型实例详解【数组、对象、严格模式等】

    本文实例讲述了JavaScript 引用类型。分享给大家供大家参考,具体如下: 数组 在ECMAScript中数组是非常常用的引用类型 ECMAScript所定义的数组和其他语言中的数组有着很大的区别 数组也是一种对象 创建数组 //方法...

    recursive-diff:一个JavaScript库,用于查找两个JavaScript对象之间的差异。 支持数组,数字,日期和其他原始数据类型

    一个JavaScript库(具有TypeScript支持),用于查找两个JS对象/数组之间的差异,支持复杂的嵌套JS对象 该库可用于获取两个JS对象/数组(或其他原始值)之间的差异。 Diff以Array的形式返回,其中每个ARRAY项都代表...

    JavaScript 动态网页实例 - 数据类型转换.rar

    复合数据类型主要有对象、数组与函数。基本数据类型有数值数据类型、字符串数据类型、逻辑数据类型以及undefined和 null 两个特殊的数据类型。在数值数据类型中,还有NaN等特殊值。JavaScript 是一种松散类型、动态...

    JavaScript jQuery 中定义数组与操作及jquery数组操作

    数组就是某类数据的集合,数据类型可以是整型、字符串、甚至是对象 Javascript不支持多维数组,但是因为数组里面可以包含对象(数组也是一个对象),所以数组可以通过相互嵌套实现类似多维数组的功能 1.1 定义数组 ...

    javascript二维数组和对象的深拷贝与浅拷贝实例分析

    本文实例讲述了javascript二维...JavaScript的数据类型分为原始数据类型和对象类型。二者在内存中存放的方式不同,导致了其赋值时差异。分别举个栗子 var x = 1; var y = x; //y获得了和x同样的值 y = 2; console.log

    文章目录 一、javaScript 的几种数据类型 1、数字类型 2、字符串 3、布尔型 4、数组 5、null 和 undef

    javascript数据类型文章目录 一、javaScript 的几种数据类型 1、数字类型 2、字符串 3、布尔型 4、数组 5、null 和 undefined 6、对象类型 二、 类型转换 1、字符串转整数 2、字符串转小数 3、数字转字符串 4、布尔...

    JavaScript判断变量是对象还是数组的方法

    在JavaScript中所有数据类型严格意义上都是对象,但实际使用中我们还是有类型之分,如果要判断一个变量是数组还是对象使用typeof搞不定,因为它全都返回object 代码如下: var o = { ‘name’:’lee’ }; var a = ...

    JavaScript 中有关数组对象的方法(详解)

    js 中的数据类型分为两大类:原始类型和对象类型。 原始类型包括:数值、字符串、布尔值、null、undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象—-函数(js中的一等对象)、数组(键值的...

    javascript中json对象json数组json字符串互转及取值方法

    今天用到了json数组和json对象和json类型字符串之间互转及取值,记录一下: 1.json类型的字符串转换为json对象及取值 var jsonString = '{"bar":"property","baz":3}'; var jsObject = JSON.parse(jsonString); //...

    JS合并两个数组的3种方法详解

    这篇文章主要介绍了JS合并两个数组的3种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...这里有一个问题,concat方法连接a、b两个数组后,a、b两个数组的数据不变,同时会返

    JavaScript征途

    《JavaScript征途》内容全面,由浅入深,包括6篇21章,主要内容包括:JavaScript语言的基本特性,开发简单的JavaScript程序,JavaScript语法体系,数据、数据类型和变量,运算符和表达式,语句和结构,JavaScript...

    vue检测对象和数组的变化分析

    在 JavaScript 中对象和数组是引用类型,指向同一个内存空间,如果 prop 是一个对象或数组,在子组件内部改变它会影响父组件的状态。可以直接在子组件修改对象或数组,但是并不会数据改变就会引起变化。 检测对象...

    JavaScript数组类型Array相关的属性与方法详解

    ECMAScript数组可以在每一项存储任何类型的值,无需指定数组的长度,还可以随着数据的增长来增加数组长度,这些是和其他语言的数组不同的。 1.数组的创建方法 数组字面量方式 var arr = [1,2,3,4,5];// 简单直接用...

    JavaScript从入门到精通(第2版)( (美)Steve Suehring)中文pdf

    《JavaScript从入门到精通》分为三篇:第一篇为JavaScript语法基础,主要包括JavaScript简介、如何实现JavaScript、数据类型、变量和常量、运算符、语句和函数等内容;第二篇为JavaScript对象,主要包括对象、核心...

    JavaScript数组Array对象增加和删除元素方法总结

    本文实例总结了JavaScript数组Array对象增加和删除元素方法。分享给大家供大家参考。具体分析如下: pop 方法 移除数组中的最后一个元素并返回该元素。 arrayObj.pop( ) 必选的 arrayObj 引用是一个 Array 对象。 ...

    javascript中Array()数组函数详解

    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型...

    《JavaScript征途》书稿实例

    由浅入深,包括6篇21章,主要内容包括:JavaScript语言的基本特性,开发简单的JavaScript程序,JavaScript语法体系,数据、数据类型和变量,运算符和表达式,语句和结构,JavaScript函数, JavaScript对象,...

    javascript 判断一个对象为数组的方法

    通常我们可以用一元运算符typeof来判断js的数据类型,但是对于数组这样一个特殊的对象却只能返回”object” typeof [1,2,3] "object" typeof 100 "number" typeof false "boolean" typeof undefined "undefined" ...

    一个使用MFC的VC++数组类代码

    VC/C++源码,其它分类,数组,MFC 一个使用MFC的VC++数组类代码,大家都知道,MFC的数组类可以存放任何数据类型,C++的常规数组在使用前必须将其定义成能够容纳所有可能需要的元素,而MFC数组类创建的对象可以根据需要...

Global site tag (gtag.js) - Google Analytics