JS-创建函数的三种方法和三种特殊函数

JavaScript中定义函数的方式

1. 函数声明方式
function 函数名称() {
函数体;
}
2. 函数表达式方式
var 变量名称 = function() {
函数体;
};
1) 函数表达式方式创建的函数是没有名称的函数
2) 变量中存储的是对函数的引用
3) 函数声明方式和函数表达式方式的区别,函数声明方式定义的函数可以在定义之前调用该函数,但是函数表达式方式定义的函数,不可以在定义之前调用。因为函数声明方式定义的函数有函数声明提升操作,而函数表达式方式定义的操作没有函数声明提升操作,只有变量声明提升操作
3. 利用Function构造方法创建函数
var 变量名称 = new Function(‘参数1’, ‘参数2’, ‘参数3’…);
构造方法Function中的参数可以有多个,那么前面的参数表示函数的形参,最后一个参数表示函数体
调用方式为:变量名称(实参1,实参2,实参3…);
注意:这种方式定义的函数也不可以在定义之前调用,因为它也只有变量声明提升操作

 // 定义一个函数,功能是打印1-10之间的偶数
// 函数声明方式
        printNum();
        function printNum() {
            for (var i=1; i<=10; i++) {
                if (i%2 == 0) {
                    console.log(i);
                }
            }
        }
// 函数表达式方式
        var fn = function() {
            for (var i=1; i<=10; i++) {
                if (i%2 == 0) {
                    console.log(i);
                }
            }
        };
        fn();
// 利用Function构造方法定义一个函数,功能是求三个数的和
		var add = new Function('num1', 'num2', 'num3', 'var sum = num1+num2+num3; console.log(sum);');
add(1, 2, 3);
Js中的三种特殊函数

1. 匿名函数:没有函数名称的函数,匿名函数可以和事件相结合

HTML元素.on事件名称 = function() {函数体 };

<!-- 在页面中创建一个button按钮,当点击该按钮时,在控制台生成验证码,由字母、数字构成的5位的字符串 -->
    <button>按钮</button>		//定义html函数
<script>
//获取页面中的button
    var btn=document.querySelector('button');
    btn.onclick=function(){
        var str= "0123456789" +
                "abcdefghijklmnopqrstuvwxyz" +
                "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        var str1="";
        for(var i=0;i<5;i++){
            var s=str[parseInt(Math.random()*(str.length-1)+1)];
            str1=str1+s;
        }
        console.log(str1);
    };
</script>

2. 回调函数:一个函数被当做另一个函数的参数,如数组的排序函数

var arr = [1, 0, 7, 12, 3, 2, 15];
//数组的排序
	arr.sort(function(a, b) {
		return a - b;
	});
console.log(arr);

3. 匿名自执行函数:没有名称且不需要手动调用的函数

  1. 无参无返回值的匿名自执行函数
    (function() {
    函数体;
    })();
  2. 有参无返回值的匿名自执行函数
    (function(形参1,形参2,形参3...) {
    函数体;
    })(实参1,实参2,实参3...);
  3. 有参有返回值的匿名自执行函数
    var 变量名称 = (function(形参1,形参2,形参3...) {
    函数体;
    return 返回值;
    })(实参1,实参2,实参3...);
    注意:匿名自执行函数通常用来创建块级作用域
<!--//  定义一个匿名自执行函数,功能是在控制台打印一个hello-->
<script>
    (function(){
        console.log("hello");
})();
</script>

<!--// 定义一个匿名自执行函数,求两个数的和-->
<script>
    (function(a,b){
        console.log(a+b);
    })(1,2);
</script>

<!--// 定义一个匿名自执行函数,功能是求两个数的和,将和作为返回值返回-->
<script>
    (function(a,b){
        var sum=a+b;
        console.log(sum);
        return sum;
    })(1,3);
</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值