`

javascript中的数组对象以及json学习笔记

阅读更多


1.Javascript中的数组
  数组的创建
  数组下标操作
  数组的方法
 
  concat join slice 不修改原数组
 
  push pop unshift shift reverse sort splice 修改原数组

2.Javascript中简单对象的创建与属性操作
  简单对象的创建
  简单对象属性的添加
  简单对象属性的访问
通过对象直接量的方式定义包含属性的对象

3.JSON数据格式
  JSON(Javascript Object Notation)是一种轻量级的数据交换格式。
  纯文本,Javascript原生支持
  与XML相比:
     优势实在Javascript当中解析快,操作方便,不需要使用DOM。
     缺点是在服务器端,生成正确的JSON格式数据与生成XML格式数据相比,服务器端语言的辅助包成熟度较低。
 
 
4.面向对象的Javascript
类的定义
公用属性和方法的定义
原型对象







===================================================

1.Javascript中的数组

数组的创建

 <script type="text/javascript">
 
 		function arrayTest(){
 			//使用new Array()
 			var array1 = new Array();
 			//使用[]操作符
 			var array2 = [];
 			
 			//创建的同时定义数组中的元素
 			//使用new Array()方式
 		  var array3 = new Array(1,2,3);
 		  //使用[]操作符
 		  var array4 = [1,2,3];
 		  
 		  //创建多维数组
 		  //使用new Array()方式
 		  var array5 = new Array(1,new Array(2,3),4);
 		    
 		  //使用[]操作符
 		  var array6 = [1,[2,3],4];
 		  
 		  //数组的下标操作
 		  //获取数组中的某元素的值
 		  alert(array3[1]);
 		  //设置数组中某个下标对应的元素值
 		  array4[2] = 111;
 		  //访问对维数组中的元素
 		  alert(array5[1][0]);
 		  //javascript中的数组时可以动态改变大小的,因此可以直接给一个不存在的下标设置元素值
 		  array[99] = 100;
 		  
 		  //数组中的方法
 		  //concat,这个方法可以用来做数组的连接或者说合并,原数组内容不会变更,将返回一个新的数组
 		  var array41 = array.concat(101,102,103);
 		  var array42 = array.concat([104,105]);
 		  var array43 = array.concat(array4);
 		  
 		  //join,这个方法可以将数组当中的元素,按照指定的分隔符连接成字符串输出,原数组的内容不会变
 		  var strarray431 = array43.join("");//1211112111
 		  var strarray432 = array43.join("+");//1+2+111+1+2+111
 		  
 		  
 		  //slice,这个放好可以返回当前数组的子数组,原始数组的内容不会改变
 		  var slicearray1 = array43.slice(0,3);//从0下标开始,到3下标之前的元素返回新的数组[1,2,111]
 		  var slicearray2 = array43.slice(4);//从4下标开始,到数组尾部的所有元素都返回成新的数组[2,111]
 		  //从当前数组的倒数第二个元素开始,当前数组倒数第一个元素之前的所有内容返回一个新的数组[2]
 		  var slicearray3 = array43.slice(-2,-1);
 		  
 		  
 		  //push,pop,在数组尾端追加(push)或弹出(pop)元素,将会修改原数组的内容
 		  array43.push(200);
 		  array43.push(201,202);
 		  array43.push([201,202]);
 		  array43.push(array41);
 		  var arraypop = array43.pop();
 		  var arraypop = array43.pop();
 		  
 		  
 		  //unshift,shift,在数组的开头进行追加(unshift)和弹出(shift)的操作,将会修改原数组的内容
 		  array43.unshift(300);
 		  array43.unshift(301,302);
 		  array43.unshift([303,304]);
 		  var arrayshift = array43.shift();
 		  var arrayshift2 = array43.shift();
 		  
 		  //reverse,这个方法可以翻转数组中的元素,修改原数组的内容
 		  array43.reverse();
 		  
 		  //sort,这个方法可以对数组中的元素进行排序,修改原数组的内容
 		  array43.sort();//无参,是按照字母顺序对数组中的元素进行了升序的排列
 		  array43.sort(function(a,b){
 		  	return a-b;
 		  });//就是按照数值大小,进行一个升序的排列。如果返回的是负值,则a会出现在b的前面
 		  
 		  array43.sort(function(a,b){
 		  	return b-a;
 		  });//就是按照数值大小,进行一个降序的排列。
 		  
 		  //splice,可以删除数值中的一部分元素,并且把删除的内容进行返回,原数组的内容会发生变更,还可以在制定位置添加元素
 		  //第一个参数,删除元素开始的下标位置
 		  //删除元素的个数
 		  array43.splice(index,howMany,element1,elementN);
 		  //用局部变量来接收删除的返回值,会把删除部分的内容进行返回
 		  var splicearray1 = array43.splice(4,2);//从下标为4的元素开始,删除两个元素
 		  var splicearray2 = array43.splice(4); //从下标为4的元素开始,直到数组末尾的所有元素都被删除
 		  
 		  array43.splice(1,0,400,401);//从下标为1的元素之前,0表示不删除,插入400,401
 		  array43.splice(1,0,[500,501]);//从下标为1的元素之前插入500,501
 		  
 		
 		}
 
 </script>












===================================================================



2.Javascript中简单对象的创建与属性操作


<script type="text/javascript">
 
 		function objectTest(){
 			//方式1,通过new Object()
 			var obj1 = new Object();
 			//方式1,通过{}操作符
 			var obj2 = {};
 			
 			//增加属性,使用.操作符
 			//使用new Array()方式
 		  obj1.num = 1;
 		  obj1.str = "String";
 		  obj1.hell = function(){
 		  	alert("hello!");
 		  }
 		  obj2.obj = obj1;
 		  
 		  
 		  //属性的访问,方法1,使用.操作符
 		  alert(obj2.obj.num);
 		  alert(obj2.obj.str);
 		  obj1.hello();
 		  //属性的访问,方法2,使用[]操作符
 		  alert(obj2["obj"]["num"]);
 		  alert(obj2["obj"]["str"]);
 		  obj1["hello"]();
 		 
 		  alert("");
 		  
 		  //对象直接量定义方法,利用{}
 		  var obj3 = {
 		  						num:1,
 		  						str:"String",
 		  						hello;function(){
											alert("hello!"); 		  						
 		  						}		  
 		  };

 		}
 
 </script>

======================================================================
3.JSON数据格式
<script type="text/javascript">
 
 		function jsonTest(){
 			//JSON数据格式定义
 			var json1 = "[1,2,{" + 
 													  "a:123,b:'String',c:[100,101]'" +
 			             "}]";
 			             
 			//javascript的一个内置方法eval(),返回回json这段数据格式所对应的javascript的数组或者对象
 			var jsonArray = eval(json1);
 			
 			var json2 = "{" + 
 												"a:'hello', b:[1,2,3], c:function(){ alert(\"Hi!!!\") }" +
 			             
 			            "}";
 			//错误写法            
 			//var jsonObject = eval(json2);
 			
 			//正确的写法
 			var jsonobj = eval( "(" + json2 + ")" );
 			
 			
 			如果从服务器端返回回来的json数据格式 他最终代表的是一个数组,可以直接用eval的方式对他进行执行,
 			返回javascript里面的一个数组。
 			如果从服务器端返回的json格式对应的是一个对象,我们必须要在他的外层加上括号(),
 			才会返回正确的对象,否则会报错。

 			
 		}
 
 </script>




======================================================================
4.面向对象的Javascript
<script type="text/javascript">
 		//javascript中类的定义,需要靠function来模拟
 		/*
 		function Teacher(){
 		
 		}*/
 		
 		//建议采用下面的形式来定义一个js中的类,可以和普通的function进行区分
 		//建议类名首字母大写,以便更好的和普通的function进行区分
 		var Teacher = function(){
 		
 		}
 		
 		//定义一个Book的类,这个function还承担了模拟构造函数的工作
 		//在使用new操作符创建Book类的对象时,这个function中的代码会被执行
 		//这里面的this代表当前对象
 		/*
 		var Book = function(name){
 					//定义共有的属性
 					this.name = name;
 					//定义共有的方法
 					this.getName = function(){
 						return this.name;
 					};
 					this.setName = function(name){
 						this.name = name;
 					}
 		}*/
 		
 		
 		/*********************************************
 		//一种更为合适的公有属性和方法定义
 		var Book = function(name){
 				//Book.prototype.name=name;
 				//公有属性,在构造方法里面来定义,通过this关键字
 				this.name = name;
 		}
 		//Book.prototype.name="";//优先访问对象上的属性,即这里的this.name,没有才会访问(找)原型对象上的name;
 		//公有的方法,在原型对象上定义
 		Book.prototype.setName = function(name){
 				this.name = name;
 		};
 		
 		Book.prototype.getName = function(){
 				return this.name;
 		};**************************************/
 		
 		
 		
 		//一种更为合适的公有属性和方法定义
 		var Book = function(name){
 				//Book.prototype.name=name;
 				//公有属性,在构造方法里面来定义,通过this关键字
 				this.name = name;
	
 				if(typeof Book._init = "undefined"){
 						//公有的方法,在原型对象上定义
		 				Book.prototype.setName = function(name){
		 					this.name = name;
		 				};
		 		
		 			  Book.prototype.getName = function(){
		 				 return this.name;
		 		    };
 				}
 				Book._init = true;
 		
 		};
 		
 		
 		
 		
 		function ooTest(){
 		   var teacher = new Teacher();
 		   alert(teacher instanceof Teacher);
 		   var book1 = new Book("AJAX");//这个new操作相当于创建了一个简单对象,调用了类的构造方法
 		   var book2 = new Book("AJAX1");
 		   alert(book1.getName());
 		   alert(book2.getName());
 		   
 		   book1.setName("JAVA");
 		   alert(book1.getName());
 		   alert(book2.getName());
 		   
 		   //function上面都有一个原型对象
 		   var proto = Book.prototype;
 		   proto.str = "String";
 		   proto.hello = function(){
 		   		alert("Hello");
 		   };
 		   //原型对象上定义了属性之后,拥有这个原型对象的function,
 		   //它所模拟的类创建出的对象,就可以拥有原型对象上定义的属性
   
 		   
 		   alert();
 		
 		}
 
 </script>

-----------------------------------------------------------------
<script type="text/javascript">
 		//展示原型对象上定义公有属性的另一个问题
 		var Teacher = function(){	
 		}
 		Teacher.prototype.student=[];
 	
 		Teacher.prototype.addStudent = function(sname){
 				this.student.push(sname);
 		};
 		
 		Teacher.prototype.showStudent = function(){
 				alert(this.student);
 		};
 		
 		
 		function oo4Test(){
 		   var teacher1 = new Teacher();
 		   var teacher2 = new Teacher();
   
 		   teacher1.addStudent("wang");
 		   teacher2.addStudent("lee");
 		   teacher1.showStudent();
 		   teacher2.showStudent();
 		   alert();
 		
 		}
 
 </script>







分享到:
评论
2 楼 蜀山红日 2012-12-06  
1 楼 80houzhu 2012-02-17  
恩,很好,很好~

相关推荐

    JavaScript数组对象JSON学习笔记

    ### JavaScript 数组对象 JSON 学习笔记 #### 一、JavaScript 数组操作 在 JavaScript 中,数组是一种常用的数据结构,用于存储多个值。本部分主要介绍如何创建数组、访问数组元素以及对数组进行各种操作。 #####...

    WCF返回JSON学习笔记

    ### WCF返回JSON学习笔记 #### 一、WCF与JSON简介 - **WCF (Windows Communication Foundation)**:是微软开发的一个框架,用于构建服务导向的应用程序。它提供了多种通信协议的支持,包括HTTP、TCP等,并且支持...

    json 学习笔记 相关知识点

    ### JSON学习笔记:深入理解与应用 #### 一、JSON简介与重要性 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于ECMAScript的一个子集,采用...

    Json学习笔记

    ### JSON学习笔记:深入了解JSON与Spring框架中的初始化机制 #### JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以其简洁性和易读性而著称,不仅适用于人眼阅读,也便于机器解析和...

    JSON学习笔记

    通过阅读这篇"JSON学习笔记",读者不仅可以了解JSON的基本概念,还能深入到实际开发中JSON的使用,包括解析、序列化、验证以及与HTTP、其他语言的交互等。同时,笔记可能会介绍如何利用提供的开源库来简化JSON处理的...

    json-lib 学习笔记 分享下

    这个学习笔记主要围绕`json-lib`的使用方法和关键特性进行阐述。 首先,`json-lib`支持多种Java对象到JSON的转换,包括基本类型、数组、集合、Map以及自定义的Java类。例如,你可以通过以下方式将一个HashMap转换为...

    json学习笔记、jackson的jar包

    在这个“json学习笔记、jackson的jar包”中,我们可以深入探讨JSON和Jackson的相关知识点。 1. JSON基本概念: - JSON是一种文本格式,易于人阅读和编写,同时也易于机器解析和生成。 - JSON数据结构主要由对象...

    《JSON-lib框架,转换JSON、XML不再困难》学习笔记

    在《JSON-lib框架,转换JSON、XML不再困难》的学习笔记中,可能涉及以下几个关键知识点: 1. JSON基础:JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集...

    JavaScript学习笔记

    上述示例中,`school`属性本身又是一个对象,而`like`属性则是一个数组。 - **访问JSON中的属性:** 使用`.属性名`或`['属性名']`来访问属性值。 ```javascript objectA.school["highschool"]; objectA.like...

    JavaWeb02-JavaScript学习笔记

    JavaScript基础知识点 JavaScript是一种脚本语言...本笔记涵盖了JavaScript的基础知识点,包括变量、数据类型、流程控制语句、函数、数组、对象、JSON、BOM和Location等概念,为学习JavaScript提供了一个良好的基础。

    javascript学习笔记

    以上是对给定文件中JavaScript学习笔记的部分内容进行的详细解读,涵盖了JavaScript的基础知识、语法、数据类型、函数、对象、数组、DOM编程、AJAX以及JSON和jQuery的简介,旨在为初学者提供全面的入门指南。

    JavaScript学习笔记 概括了所有的javaScript语法 用法

    在前端开发中,JavaScript常用于操作DOM(文档对象模型),如添加、删除、修改元素,以及事件处理。DOM API提供了一系列方法,如getElementById、appendChild等,而jQuery等库则简化了DOM操作。 七、AJAX与Fetch ...

    Spring MVC 学习笔记 九 json格式的输入和输出

    在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛应用于前后端数据传输。 1. **JSON格式简介** ...

    Javascript学习笔记.docx

    本文将深入探讨JavaScript的一些核心知识点,包括基本语法、动态函数、DOM操作以及对象封装等。 1. 基本语法: JavaScript支持动态类型,这意味着数组可以包含不同类型的元素,如在`var arr = [3, true, "abx"];`...

    JSON相关的jar包

    博客“JSON学习详细笔记”可能包含了以下内容: - JSON的基本语法,包括对象、数组、值类型的表示。 - 如何在Java中创建JSON对象和数组。 - 使用不同库(如Gson、Jackson、org.json等)进行JSON解析和序列化的示例...

    javaScript达内培训笔记

    JavaScript数组是动态的,即可以在任何时候改变其长度。数组有多种内置方法: - `length`:获取数组长度。 - `toString()`:将数组转换为字符串。 - `concat()`:连接两个或多个数组。 - `join()`:将数组元素连接成...

Global site tag (gtag.js) - Google Analytics