JavaScript数组

文献种类:专题技术总结文献;
开发工具与关键技术:DW与 JavaScript
作者:熊江宇 ;年级:2019 ;撰写时间:2020 年 4 月 25 日

JavaScript数组

开发工具与关键技术:Adobe Dreamweaver JavaScript
作者:熊江宇
撰写时间:2020年4月20日
                              
                           JavaScript数组



  JavaScript的对象


	内建对象
	
	宿主对象
	
	自定义对象
	
	1. 数组(Array)
		- 数组也是对象(内建对象)
		- 它和我们普通对象功能类似,也是用来存储一些值的
		- 不同的是普通对象使用字符串作为属性名
			而数组是使用数字来作为索引操作元素
		- 索引:
			从0开始的整数就是索引
		- 数组的存储性能比普通对象要好,在开发中我们经常使用数组来存储一些数据
     
       创建数组对象
	   例如:  var arr=new Array();

       向数组中添加元素
		语法:数组[索引] = 值
	    例如: arr[0]=12;

       读取数组中的元素
	   语法:数组[索引]
       例如: console.log(arr[1])
	   如果读取不存在的索引,不会报错而是返回undefined
       
       获取数组的长度,可以使用length这个属性获取
		语法:数组.length 
        例如:console.log(arr.length)
		对于连续的数组,使用length可以获取到数组的长度(元素的个数)
		对于非连续的数组,使用length汇获取到数组的最大的(索引+1)
			尽量不要创建非连续数组
       
       修改length
			- 如果修改的length大于原长度,则多出部分会空出来
			- 如果修改的length小于原长度,则多出的部分会被删除

       使用字面量来创建数组:
	          例如:var arr1=[];
          
        使用字面量创建数组时,可以在创建时就指定数组中的元素
	       例如:var arr2=[12,34,56,7,8,9,0,3,5];
        
         使用构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数的参数
传递元 素之间使用,逗号隔开
	        例如:var arr3=new Array(12,34,56,7,8,9,0,3,5);
  
          数组的值可以是任意的数据类型,包含对象的

         数组中可以存放函数
	         例如:var arr7=[function(){function(){alert("helloworld");}];
	     
          二维数组
	            例如:   var arr8=[
			                [1,3,4,5],
			                [1,4,6,7]
		                   ];
       
                  数组的方法 
               
     两个数组:
             var arr=["1","2"];	
	         var arr1=["3","4"];
           concat连接两个或更多的数组,并返回结果。
	          例如:   var arr=arr.concat(arr1);
      
            join把数组的所有元素串联成一个字符串。元素通过指定的分隔符进行分隔
	                   var 变量=arr.join("~~");
  
            push()
		    该方法可以向数组的末尾添加一个或多个元素,并返回数组的新的长度
		- 可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾
		- 该方法会将数组新的长度作为返回值返回
              例如:var 变量 =arr.push("小白","小黑");

         pop()
		 - 该方法可以删除数组的最后一个元素,并将被删除的元素作为返回值返回
	           例如:       var 变量=arr.pop();
  
         unshift()
			- 向数组开头添加一个或多个元素,并返回新的数组长度
			- 向前边插入元素以后,其他元素的索引会依次调整

          shift()
			- 可以删除数组的第一个元素,并将被删除的元素作为返回值返回


                    JavaScript数组的遍历

        创建一个数组
	     var arr=["小明","小红","小橙","小蓝","小绿"];
	所谓的遍历数组,就是将数组中所有的元素都取出来
	   例如:   1.     for(var i=0;i<arr.length;i++){
		           console.log(arr[i]);
	             }
	         2.    for(var o in arr){
		               console.log(arr[o]);
	              }
           3. 
               forEach()
		- 这个方法只支持IE8以上的浏览器
			IE8及以下的浏览器均不支持该方法,所以如果需要兼容IE8,则不要使用forEach
			如果考虑到兼容问题还是使用for循环

            第一个参数,就是当前正在遍历的元素
			第二个参数,就是当前正在遍历的元素的索引
			第三个参数,就是正在遍历的数组
	           例如:   arr.forEach(function(value,index,obj){ }
 
                        call()与apply()

		- 这两个方法都是函数对象的方法,需要通过函数对象来调用
		- 当对函数调用call()和apply()都会去调用函数执行
		- 在调用call()与apply()可以将一个对象指定为第一个参数
			此时这个对象将会成为函数执行时的this
		- call()方法可以将实参在对象之后依次传递
		- apply() 方法需要将实参封装到一个数组中统一传递
*/
	
/*
this的总结:
		1.以函数的形式调用时,this始终都是window对象
		2.以方法的形式调用时,this就是调用方法的对象
		3.以构造方法的形式调用时,this是新创建的那个对象
		4.使用call与apply调用时,this是指定的那个对象

                           arguments
	在调用函数时,浏览器每次都会传递进来两个隐含的参数:
		1.函数的上下文对象 this
		2.封装实参的对象arguments
			- arguments是一个类数组对象,它也可以通过索引来操作数组,也可以获取长度
			- 在调用函数时,我们所传递的实参都会在arguments中保存
			- arguments.length可以用来获取实参的长度
			- 我们即使不定义形参,也可以通过arguments来使用实参,比较麻烦
				arguments[0] 表示第一个实参
				arguments[1] 表示第二个实参
			- 它里面有一个属性叫做callee,
				这个属性对应一个函数对象,就是当前正在执行的函数对象

              例如:         function fun(){
                            		console.log(this);
	          	             console.log(arguments instanceof Array);
                         	 console.log(arguments[0]);
		                     console.log(arguments.callee);
	                     }
	                        fun()
	                        fun(12,123,343,45,4);


        

    

                        日期对象Date


1.   JavaScript 日期对象Date
	 Date对象(内建对象)
		- 在JS中使用Date对象来表示一个时间
	
	创建一个Date对象
	如果时间使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
如:var 变量=new Date();
可以在 构造函数中传递一个表示时间的字符串作为参数

2.  getDate() - 获取当前日期对象时几日
  如:var 变量1=变量.getDate();     
    getDay() - 获取当前日期是星期几
				 - 会返回一个0~6的值
				 	0 表示周日
					1 表示周一
					...
					6 表示周六
    getMonth() - 获取当前日期对象的月份
				   - 会返回一个0~11的值
				   	 0 表示 一月
					 1 表示二月
					 ...
					 11 表示十二月
getFullYear() - 获取对象以四位数字返回年份
getHours() - 获取当前日期对象的小时
getMinutes - 获取当前日期对象的分钟
getSeconds - 获取当前日期对象的秒数
getTime()
			- 获取当前日期对象的时间戳
			- 时间戳,指的是从格林威治标准时间的1970年1月1日,0时0分0秒
				到当前日期所花费的毫秒数(1秒=1000毫秒)
			- 计算机底层在保存时间时使用都是时间戳:
            以毫秒记单位;
如:   var time=d.getTime();
	console.log(time);//毫秒为单位
	console.log(time/1000/60/60/24/365);
	
北京时间和格林威治的时间间隔:
	var date3=new Date("1970/1/1 0:0:0");
	time=date3.getTime();
	console.log(time/1000/60/60);
	//console.log(time/1000/60/60);//注意时差的问题 我们的时间是北京时间

3. 
    把日期拼接:
var 变量a=变量b+":"+变量c+":"+变量d;



4.
 如果小于等于9像前面加个0;

   a.  f(变量<=9){
	 	    变量="0"+变量;
       }
   b.   变量=变量<=9?"0"+变量:变量;
5.
   //可以使用时间戳来测试代码的执行性能
	
	//获取当前的时间戳
	var start=Date.now();
	for(var i=0;i<100;i++){
		console.log(i);
	}
	var end=Date.now();
	console.log("本次代码执行时间为:"+(end-start)+"毫秒");


                       Math对象
     和其他对象不同,它不是一个构造函数,
	 	它属于一个工具类不用创建对象,它里面封装了数学运算相关的属性和方法
	- 例如:
		Math.PI 表示圆周率(约等于3.14159)
    写法:  var date=new Date();//
	
	          console.log(Math.PI);
        Math.abs(x) - 返回一个数的绝对值
		Math.sin(x) - 返回一个数的正弦
        Math.ceil() - 可以对一个数进行向上取整,小数位只要有值就自动进1
		Math.floor() - 可以对一个数进行向下取整,小数部分会被舍掉
		Math.round() - 可以对一个数进行四舍五入取整
        Math.random()
			- 可以用来生成一个0-1之间的随机数
				    Math.random()
			- 可以用来生成一个0-10之间的随机数(整数)
					Math.round(Math.random()*10)
			- 可以用来生成一个0-X之间的随机数(整数)
					Math.round(Math.random()*X)
			- 可以用来生成一个1-10之间的随机数(整数)
					Math.round(Math.random()*9)+1
			- 可以用来生成一个1-X之间的随机数(整数)	
					Math.round(Math.random()*(X-1))+1
			- 可以用来生成一个Y-X之间的随机数(整数)	
					Math.round(Math.random()*(X-Y))+Y
				   
                       JavaScript包装类
	数据类型:
		基本数据类型:String Number Boolean Null Undefined
		引用数据类型:Object
	在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型转换为对象
		String() 
			- 可以将基本数据类型字符串转换为String对象
		Number()
			- 可以将基本数据类型的数字转换为Number对象
		Boolean()
			- 可以将基本数据类型的布尔值转换为Boolean对象
		但是请注意!!!
			我们在实际应用中不会使用基本数据类型的对象,

      方法和属性只能添加给对象,不能添加给基本数据类型
		当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换对象,然后在调用对象的属性和方法,调用完以后,再将其转换为基本数据类型
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值