JavaScript基础笔记2(函数)

函数:

//定义函数的两种方式 function func1() { //函数声明 console.log("qwq"); } let func1 = function() { //函数定义 console.log("qwq"); }; //两者有细微差异,function为函数声明,let为函数定义。 //JavaScript引擎会先把全局函数声明提前(类似变量提升),这阶段为初始化阶段 //而函数定义只会在运行到此行才会执行 //由于let相当于语句,与函数声明或者C语言的函数定义相比,函数大括号后面加多加了一个分号。其实可以不加,但是建议加上。 function A() { return B(); } function B() { return A(); } console.log( A() ); //此例没有语法错误,但是运行时会爆栈 //用函数定义和函数声明,都不会在A函数中出现B函数未定义的报错,但是调用函数时必须调用已经定义或有全局声明的函数,否则报错

JavaScript中的函数可以当做一种特殊的值来处理,函数可以当做变量名将内容转移到另一个变量里。

console.log( func1() ); //qwq undefined 如果没有return值,函数本身的返回值就是undefined console.log( func ); //ƒ func1() { console.log("qwq"); } 如果是输出变量名会把函数内容输出出来 let func2 = func1; func2(); // qwq 函数名可以交换

函数名也可以当参数传入另一个函数中,JavaScript教程中的函数嵌套例子:

function ask(question, yes, no) { //这里传进去的yes和no是两个函数 if (confirm(question)) yes(); //confirm是弹出对话框,让用户选择yes或no,返回true和false的函数 else no(); } ask( "Do you agree?", function() { alert("You agreed."); }, function() { alert("You canceled the execution."); } //正常工作 ); ask( "Do you agree?", function() { alert("You agreed."); }, "qwq" //如果点yes程序正常工作,如果点no程序会中断,以至于后面的QAQ也不会输出 ); console.log("QAQ");

箭头函数

函数其实有第三种表达形式,叫箭头函数:

let func = (arg1, arg2, ..., argN) => expression; // “(参数)=> 语句” 是箭头函数的主要形式,若为单个语句且有具体的返回值,那么也可以作为return值来用 //如果只有一个参数,可以省略括号 //如果没有参数,括号内可以为空 //其作用相当于下面定义。 let func = function(arg1, arg2, ..., argN) { return expression; }; console.log(typeof (()=>"qwq") ); //function 说明本质上也是函数的一种形式 //一个例子: let ask = ()=>alert("qwq"); console.log(typeof ask()); //undefined //分析:ask本身是函数,alert本身也是函数,但是alert()的返回值是undefined,ask()的返回值即为=>后面的值应该也是undefined,因此输出类型也是undefined

在JavaScript中,函数作为一种很自由的数据类型,可以在代码的任意位置创建:

let age = prompt("What is your age?", 18); let welcome = (age < 18) ? () => alert('Hello!') : () => alert("Greetings!"); //在三目运算符中创建箭头函数 welcome();

当函数有多条语句但是需要具体的返回值时,可以用花括号括起来加return:

let add = (a,b) => { let res = a + b; return res; }; alert( add(1, 2) ); // 3

由于箭头函数的简洁性,在JavaScript中有比较高的应用价值。


__EOF__

本文作者枫叶晴
本文链接https://www.cnblogs.com/maple276/p/17582783.html
关于博主:菜菜菜
版权声明:呃呃呃
声援博主:呐呐呐
posted @   maple276  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示