31.js--函数的形参与实参

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


1.形参和实参的定义

        形参:是在定义函数时使用的参数,目的是用来接收调用该函数时传进来的实际参数。 
        实参:是在调用时传递给函数的参数 

2.函数是js数据类型中的哪一种?

            js数据类型 只有两种:基本数据 引用数据: object function

举例1:

            function fn(){}
			function fm () {
				this.fm=100
				fn.fm=100
			}


            fn.fn=fm			
			            // fm()
			fn.fn()    //让fm函数运行 而且调用者是fn函数(对象)  运行的函数内部的this是fn函数			
			console.log(fn.fn,fn.fm)			
			console.log(window.fm)

运行结果:

 

举例2:

          var obj = {
				name: "karen",
				fn: function() {
					console.log(this.name)
				}
			}
			var a = obj.fn
			a();

运行结果:

 

举例3:

        //作用域: 函数内部和外部

         function fn(){

				var obj = {
					name: "karen",
					fm: function(){
						console.log(name)
					}
				}
				var name
			}

运行结果:

 

举例4:函数的知识点:

       
		   function fn(a,b){
			   var c=a+b
			   console.log(c)
			   //函数内部有一个关键字 arguments,代表实际传入函数的参数列表(类数组)
			   console.log(arguments)
		   }
		   
		   //实际传入函数的参数(实参) 的个数可以比形参的个数多,按照顺序赋值  
		   //不会影响程序的执行逻辑但是会影响性能
		   fn(10,20,30,40)

运行结果:

 

举例5:

        function fn(a,b,c){  
			   if(a==undefined){a=0}
			   if(b==undefined){b={}}                //默认值
			   console.log(a,b)
			   console.log(arguments.length)        //实参个数
		   }
	   
		   //实际传入函数的参数(实参) 的个数可以比形参的个数少,按照顺序赋值 
		   //可能会影响程序的执行逻辑==>解决方案就是设计函数时提前预设
		   fn(10)
		   fn()
		   fn(100,{name:"karen"})

运行结果:

 3.函数的length属性代表的是形参的个数(笔试题)

举例6:

         function fn(a,b,c){  
			   if(a==undefined){a=0}
			   if(b==undefined){b={}}                //默认值
			  // console.log(a,b)
			  // console.log(arguments.length)        //实参个数
		   }
	   
		   console.log(fn.length)		   
		   fn(10)

运行结果:

 

4.函数的name属性

举例7:

           function  fn () {
		   	   
		   }
		   console.log(fn.name)
		   
		   
		   var a=fn
		   console.log(a.name)
		   
		   var a=function(){}
		   console.log(a.name)
		   
		   
		   var a=function fn(){}
		   console.log(a.name)

运行结果:

         综合来说,当局部变量未声明或只声明而未赋值时,内存中还没有这个变量,这时候调用的同名变量是形参。当局部变量赋值完成后,内存中已经存在这个变量,并且覆盖了同名的形参。后面再调用该变量时,就指的的局部变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值