js 数组 方法 函数 函数调用

<!-- 
         数组
            数组定义
                1、隐式定义
                    var 数组名=【】;//空数组
                    var 数组名=【值1,值2...】;
                2、直接实例化
                    var 数组名=new Array(值1,值2...);
                3、定义数组并设置长度
                    var 数组名=new Array(size);
         -->

 // 数组定义   ****  1、隐式定义
				
		 	var arr1=[];
			console.log(arr1);
			var arr2=[1,2,'a',true];
			console.log(arr2);
			
			
		//2、直接实例化
		var arr3=new Array(1,2,3);
		console.log(arr3);
		
		//3、定义数组并设置长度
		var arr4=new Array(5);
		console.log(arr4);

/* <!-- 
          数组的操作
            数组的下标从0开始
            1、获取数组的值-----如果下表越界----输出值为undefined
                数组[下标]
            2、设置数组的值------如果下标不存在---中间自动补为空---自动扩容
                数组名[下标]=值;
            3、获取数组的长度
                数组名.length;
            4、设置数组的长度
                数组名.length=值;
          -->
          */

console.log("--------数组操作---------");  
		//获取指定下标的值
		 console.log(arr2[2]);//值为2
		 
		 //设置指定下标的值
		 arr2[1]=20;
		 console.log(arr2);
		 
		 
		 //获取数组的长度
		 console.log(arr3.length);//值为3
		 
		 //设置数组长度
		 console.log(arr3.length=5);

设置数组的属性
            如果设置非整数型的下标,则会成为数组的属性,不计入数组的长度
            设置属性
                数组名.属性名=值;
                数组名["属性名"]=值;
            获取属性
                数组名.属性名;
                数组名["属性名"];
            */

arr3.name="张";
		 console.log(arr3);
		 arr3["pwd"]="123456";
		 console.log(arr3);

 /*
         数组遍历
            1、for循环遍历
                for(var index=0;index<数组长度;index++){
                    
                }
                
            2、for...in循环
                for(var 下标 in 数组){
                    
                }
                
            3、forEach循环
                数组.forEach(function(element,index){
                    //element:元素
                    index:下标
                });
         */

	 console.log("---数组遍历-------");
		//for循环遍历------不遍历属性
			 console.log("****for遍历循环****");
			 for(var i=0;i<arr3.length;i++){
				 	 console.log("下标"+i+"值"+arr3[i]);
			 }
		//2、for...in循环-------不遍历索引中的undefined
			 	 console.log("****for in ****下标");
				 for(var i in arr3){
				 console.log("下标"+i+"值:"+arr3[i]);	 
				 }
		//	3、forEach循环	-----不遍历睡醒和索引中的undefined	 
			 console.log("****forEach ****下标");
			arr3.forEach(function(element,index){
				console.log("下标"+index+"值:"+element);	 
			});
			

  /*
              数组提供的方法
                    push()    向数组的末尾添加一个或更多元素,并返回新的长度。
                    indexOf()    搜索数组中的元素,并返回它所在的位置。
                    join()    把数组的所有元素放入一个字符串。
                    split    字符串方法,将字符串转换成数组
                    
                    
                    constructor    返回创建数组对象的原型函数。
                    length    设置或返回数组元素的个数。
                    prototype    允许你向数组对象添加属性或方法。
                    Array 对象方法
                    方法    描述
                    concat()    连接两个或更多的数组,并返回结果。
                    copyWithin()    从数组的指定位置拷贝元素到数组的另一个指定位置中。
                    entries()    返回数组的可迭代对象。
                    every()    检测数值元素的每个元素是否都符合条件。
                    fill()    使用一个固定值来填充数组。
                    filter()    检测数值元素,并返回符合条件所有元素的数组。
                    find()    返回符合传入测试(函数)条件的数组元素。
                    findIndex()    返回符合传入测试(函数)条件的数组元素索引。
                    forEach()    数组每个元素都执行一次回调函数。
                    from()    通过给定的对象中创建一个数组。
                    includes()    判断一个数组是否包含一个指定的值。
                    
                    isArray()    判断对象是否为数组。
                    
                    keys()    返回数组的可迭代对象,包含原始数组的键(key)。
                    lastIndexOf()    搜索数组中的元素,并返回它最后出现的位置。
                    map()    通过指定函数处理数组的每个元素,并返回处理后的数组。
                    pop()    删除数组的最后一个元素并返回删除的元素。
                    
                    reduce()    将数组元素计算为一个值(从左到右)。
                    reduceRight()    将数组元素计算为一个值(从右到左)。
                    reverse()    反转数组的元素顺序。
                    shift()    删除并返回数组的第一个元素。
                    slice()    选取数组的一部分,并返回一个新数组。
                    some()    检测数组元素中是否有元素符合指定条件。
                    sort()    对数组的元素进行排序。
                    splice()    从数组中添加或删除元素。
                    toString()    把数组转换为字符串,并返回结果。
                    unshift()    向数组的开头添加一个或更多元素,并返回新的长度。
                    valueOf()    返回数组对象的原始值    
              
              */

 console.log("---------------");
			 // push()	向数组的末尾添加一个或更多元素,并返回新的长度。
			 var arr5=["a","b","c"];
			 arr5[arr5.length]="d";
			 arr5.push("e");
			 console.log(arr5) ;
			 // indexOf()	搜索数组中的元素,并返回它所在的位置。 
			  console.log(arr5.indexOf("a")) ;//值为0----找不到为-1
			  
			 // join()	把数组的所有元素放入一个字符串。
			 console.log(arr5.join(","));
			 // split    字符串方法,将字符串转换成数组  
			 var str="1,2,3,4,5";
			 console.log(str.split(",")) ;

函数

<!-- 
        函数的定义
            1、函数声明语句
                function 函数名([参数列表]){
                    
                }
            2、函数定义表达式
                var 变量名/函数名=function([参数列表]){
                    
                }
            3、Function构造函数
                var 函数名=new Function([参数列表],函数体);
                
         -->

-->
		 <script type="text/javascript">
		 	/*
			函数定义
				1、函数声明语句
			*/
		   function fn01(a,b){
			   console.log(a+b);
		   }
		   	console.log(fn01);
		   //2、函数定义表达式
		   var fn02=function(a,b){
			   console.log(a+b);
		   }
		   	console.log(fn02);
		   //	3、Function构造函数
		    var fn03=new Function('a','b','return (a+b);');
			console.log(fn03);
			//fn03等于fn04
			function fn04(a,b){
				return (a+b);
			}

/*
            定义函数设置形参,调用函数时传递实参
            函数的参数
                1、实参可以省略,则形参为undefinded
                2、如果形参名相同,以最后一个为主
                3、可以设置参数的默认值
                4、参数为值传递,传递副本,参数是引用传递,传递的是地址,操作的是同一个对象
                
            */

 console.log("-----函数调用-----");
		   function text01(x,y){
			   console.log(x,y);
		   }
		   text01();
		    text01(1);
			 text01(1,2);
			 
			 
			 //2、如果形参名相同,以最后一个为主
			 function text02(x,x){
			 			   console.log(x);
			 }
			 text02(1,2);//输出为2
			 
			 
			 //	3、可以设置参数的默认值
			function text03(x){
				//如果形参x有值,则值为x传递的值,否则值为"x"
				x=x||"x";
				console.log(x);
			} 
			text03(10);
			 text03();
			//3.2 
			function text04(x){
				//如果形参x有值,则值为x传递的值,否则值为"x"
				(x!=null&&x!=undefined)?x=x:x="x";
				console.log(x);
			} 
			text04();
			 text04("Hello"); 
			
			//4、参数为值传递,传递副本,参数是引用传递,传递的是地址,操作的是同一个对象
			var num=10;
			function text05(num){
				num=20;
			}
			 text05(num);//参数是定义的变量
			 console.log(num);
			 console.log("------引用传递------");
			 
			 
			 //引用传递
			 var obj={name:"zahn"};
			 obj.name="aa";
			 console.log(obj);
			 function text06(o){
			 	o.name="list";
			 }
			 
			 text06(obj);
			 console.log(obj);

/*     <!-- 
        函数调用
            1、常用调用模式
                函数名([参数列表])
            2、函数调用模式(函数有返回值)
                var 变量名=函数名([参数列表])
            3、方法调用模式
                对象.函数名([参数列表])
        函数的返回值
            return
            
                1、在没有返回值的方法中,用来结束方法-------返回的是undefined
                2、有返回值的方法中,一个是用来结束方法,一个是将值带给调用者
            
         --> */

console.log("------函数调用------");
		 
		 
		 //1、常用调用模式
		 function f1(){
			 console.log("常用调用模式");
		 }
		 f1();
		 
		 
		 //2、函数调用模式(函数有返回值)
		 function f2(a){
		 			 console.log("函数调用模式");
					 return a;
		 }
		 var num1=f2(1);
		 console.log(num1);
 //定义对象
		 var obj={
			name:"zahngds",
			 age:20,
			 sex:true,
			 cats:["大猫","小猫"],
			 dog:{     //对象
				 name:"修狗",
				 age:6,
				  },
				  sayHello:function(){     //函数
					console.log("你好呀");  
				  }
		 }
		 console.log(obj);//输出所有
		 console.log(obj.sayHello());
		 console.log(obj.sayHello);
		 obj.sayHello()//对象调用函数
		 
		  console.log("-----返回值--------");
		  
		  function a1(){
		  		console.log("没有返回值");
				return;
				console.log("继续");
		  }
		  console.log(a1());
		  
		  function a2(){
		  		console.log("有返回值");
		  				return "test";
		  				
		  }
		  console.log(a2());
  /*
		  函数的作用域
			再js中,只有在函数中才有作用域
				1、
		  */
		 
		 var pp="hello";
		 //函数中的变量是局部变量
		 function qq(){
			 //局部变量
			 var box=10;
			 //全局变量--------没有用var声明
			 box2=20;
		 }
		 //调用方法,执行方法中的代码
		 console.log(pp);//全局变量
		 // console.log(box);//输出错误-----局部变量
		 // console.log( box2);

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值