学习js的第四天(下)函数的定义方式

函数的定义方式

1.声明式定义函数:

function 函数名(){}

2.函数表达式(赋值式)

var 函数名=function(){

                                    }

                                    函数名()

求两个数的最大值
var getMax=function(m,n){
   var max=m
   if(n>max){
          max=n
          }
   return max
   }
   var m1=getMax(34,56)
   console.log('m1')
m1用于接收return返回出的值

一、预解析

==》浏览器javascript引擎(负责解析执行javascript的代码)

预解析:执行javascript代码之前,扫描通读js代码,如果发现声明式函数和var声明的变量,将其提前。

 1.预解析同名情况:声明式函数优先

fun()
console.log('111fun:',fun)----------->再执行
function fun(){------------->先执行声明函数
  console.log('fun>>>')
  }
  var fun=100
  console.log('22fun:',fun)-------->最后执行

2.if条件成不成立语句块都会解析

var num
console.log(num){---------->浏览器的预解析会将声明变量提前
  if(false){
             var num=100
            }
   console.log(num)--------》条件不成立不执行if语句,但浏览器会解析

3.return语句后的代码不执行,但会进行解析:

function fun(){
 console.log(num)
 if(true){
    return;
   }
   var num=100;-------->预解析会将var num提前,但return后的代码不会执行
 }
 fun()

示例:

/*
              1. 程序输出结果是多少?
            */
			console.log(num)
			var num = 10
			f()
			console.log(f2)

			function f() {
				console.log(n)
				var n = 20
				console.log(n)
			}
			console.log(num)
            
			var f2 = function () {
				console.log('我是f2')
			}

			/*
解析后的代码:
<script>
        console.log(num)
        var num = 10

        function f() {
            console.log(n)
            var n = 20
            console.log(n)
        }
        f()
        console.log(f2)
        console.log(num)

        var f2 = function () {
            console.log('我是f2')
        }
    </script>
运行结果:undefined undefined 20 undefined 10
    2 . 程序代码片段运行结果是?
            */
			var data = 'abc'

			fun(data)

			console.log(data)

			function fun(data) {
				data += 'xyz'
			}
形参的名字可以改变,实参不能改变
 <script>
        //   2 . 程序代码片段运行结果是?
        var data = 'abc'

        function fun(m) {
            m += 'xyz'
        }

        fun(data)

        console.log(data)
    </script>
运行结果:abc

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值