函数的概念
声明式
语法结构: function 函数名(){执行语句}
写法:
<script>
console.log(fn); // 输出 undefined 未定义
var fn = function(){
console.log('嘀嘀嘀'); //输出 嘀嘀嘀
}
// console.log(fn); 输出 function(){}或(f ( ) console.log('嘀嘀嘀'))
fn()
</script>
为什么输出为未定义:
<script>
var fn ( 因为浏览器中按照预解析来 var fn = function 中的var fn 提到了最前面,但是没有定义)
fn = function(){
console.log('嘀嘀嘀'); //输出语句
}
// console.log(fn); 输出 function(){}或(f ( ) console.log('嘀嘀嘀'))
fn()
</script>
函数分为两个阶段: 定义阶段 调用阶段
将公共的代码封装在函数中,函数相当于一个包装的盒子,可以在任意使用,这样可以避免重复书写相同
function 类似于 var ,表示用来声明一个函数的,也可以理解成函数的关键字
函数的规则,和定义变量的的规则一样函数执行的语法:函数名()表示函数调用了
赋值式
var fn = function(){ consoe.log('嘀嘀嘀')
此处函数 fn 也表示函数名 使用 var 声明的变存在变量声明提升的问题,js 语言是一种和弱类型并且是解释性的语言 声明提升:就是声明提升到当前作用域上方,然后赋值留在原地
赋值式和声明式区别:
1.书写不同
2.打印时声明式 会带上数名,赋值时没有
3.调用差异:
声明式:可以在函数定义前 调用
函数分为 实参 形参
实参函数传递给形参函数
<script>
function addFn (a,b) (形参){ (10传递给a ,20传递给b 所以a=10,b=20)
console.log(a+b); 在这个位置 输出 30
}
addFn(10,20)(实参)
</script>
函数的返回值 return
注意:函数中的 return 只能写在函数的执行语句中
作用1:中断函数内的代码,相当于 循环中的 break
作用2:函数的return 返回的值就是函数调用表达式的值
return 具有函数中断执行的功能
注意:return 后没有值 和 不写 return 函数表达式的值都是 undefined
函数默认返回值
我们可以不写 return 函数会默认在代码段最后一行 写上 return undefined
什么时候需要写 返回值返回值的书写 取决于 是否需要得到函数内部一个变量的值,如果需要 可以使用返回值将其返回,如果不需要我们可以不写