js之函数
函数(function)
概念:将某一个常用的功能进行封装,当你想使用这个功能的时候,可以选择调用、执行这个功能即可。
javascript脚本语言中,函数分为两种:一种是关键字function定义函数、表达式形式函数。
函数使用分为两部分:声明、调用。
关键字形式函数(function定义函数)
需要通过关键字function进行声明和定义。
<script type="text/javascript">
//调用
fun();
// 声明
function fun() {
// 函数体
console.log("我是大哥");
}
</script>
表达式形式函数(匿名函数)
概述:在js当中函数有两种形式:
第一种:关键字function定义的函数。
第二种:表达式形式函数,就是将关键字function定义的函数赋值给变量形式。
<script type="text/javascript">
// 表达式形式函数
//声明
var jch=function (){
console.log("我爱你我的中国");
}
jch();
jch();
jch();
</script>
两种函数的区别?
概述:两者的功能是一样的(都属于函数:都是可以将某一个功能进行封装,当你想用这个功能的时候,调用即可。)
区别:
- 1.表达式形式函数,只能在声明之后才可以调用。如果在声明之前调用,由于变量声明部分提升(提升到当前作用域最上方),因此是undefined。
![]()
- 2.关键字函数,解析器不仅仅会将变量声明部分提升到当前作用域最上方,还会将遇到的关键字形式函数,也会被提升到当前的作用域最上方。
回调函数
CallBack:回调函数
概述:当一个函数执行的执行的时候,传递实参是另一个函数声明部分,这个实参(函数)即为回调函数
<script type="text/javascript">
//声明函数
function promise(a,b,callback){
// console.log(a.random());
// console.log(b);
// console.log(callback);
console.log(a);
console.log(b);
console.log(callback);
callback();
}
// 这种写法就是回调函数
promise(1,"我爱你塞北的雪",function (){
console.log("回调函数,我执行了");
})
// promise(Math,2,true);
</script>
递归函数
概述:在很多语言中,都有函数直接或者间接调用自身的现象,像这种现象就叫做递归现象。
<script type="text/javascript">
function add(){
console.log("么么哒");
add();
}
add();
</script>
IIFE
immediately invoking function express
概述:IIFE在声明表达式形式函数的同时,立刻马上执行一次。
<script type="text/javascript">
// IIFE:声明 表达式形式函数同时、立刻、马上执行一次。
// 表达式形式函数的,声明部分
var fun=function (){
console.log("我执行了");
}();
// 在最后使用()立即执行一次
fun();
</script>
- IIFE:在表达式形式函数声明同时立刻执行一次,所谓"IIFE";
- 在表达式形式函数后面可以紧随小括号立即执行一次。
IIFE其他语法
概述:关键字形式函数后面不能紧随小括号立即执行。但是程序员可以通过一些手段,将关键字形式函数编程表达式形式函数。
<script type="text/javascript">
// IIFE:声明 表达式形式函数同时、立刻、马上执行一次。
// 表达式形式函数的,声明部分
var fun = function () {
console.log("我执行了");
}();
// 在最后使用()立即执行一次
// fun();
+function () {
console.log("+号可以将关键字函数变为表达式形式函数");
}();
- function () {
console.log("-号可以将关键字函数变为表达式形式函数");
}();
!function () {
console.log("!号可以将关键字函数变为表达式形式函数");
}();
(function () {
console.log("()号可以将关键字函数变为表达式形式函数");
})();
</script>
本文来自博客园,作者:King-DA,转载请注明原文链接:https://www.cnblogs.com/qingmuchuanqi48/articles/17186096.html


浙公网安备 33010602011771号