细说JavaScript函数的三种创建方式

318 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

我们经常需要在脚本的许多地方执行很相似的操作。函数是程序的主要“构建模块”。函数使该段代码可以被调用很多次,而不需要写重复的代码。本篇主要就是简单的总结一下JS函数的几种创建方式。

前言

👉 JavaScript 引擎会在什么时候创建函数?

👉 什么时候选择函数声明与函数表达式?

👉 上期回顾JavaScript的各种类型转换和转换规则大全

💥 排雷:JavaScript零基础系列

函数的创建方式

使用【函数声明】创建函数

function showMessage() {
  console.log( 'Hello everyone!' );
}

使用【函数表达式】创建函数

let sayHi = function() {
  console.log( "Hello" );
};

JavaScript 引擎会在什么时候创建函数?

  • 【函数表达式】是在代码执行到达时被创建,并且仅从那一刻起可用。
  • 而【函数声明】创建的函数被定义之前,它就可以被调用。
sayHi("John"); //✅ Hello, John
​
function sayHi(name) {
  alert( `Hello, ${name}` );
}
sayHi("John"); //❌ error!let sayHi = function(name) {  // (*) no magic any more
  alert( `Hello, ${name}` );
};

什么时候选择函数声明与函数表达式?

  • 当我们需要声明一个函数时,首先考虑【函数声明】语法

因为我们可以在声明这些函数之前调用这些函数。对代码可读性也更好,因为在代码中查找 function f(…) {…}let f = function(…) {…} 更容易。函数声明更“醒目”。

  • 当函数声明不适合对应的任务时,才应使用函数表达式

🎨:当你需要根据条件声明一个函数时

使用【函数声明】创建

image-20211017180620715

使用【函数表达式】创建

image-20211017180733304

使用箭头函数创建

📖写法

不带花括号:(...args) => expression — 【右侧是一个表达式:函数计算表达式并返回其结果】。 带花括号:(...args) => { body }— 【花括号允许我们在函数中编写多个语句,但是我们需要显式地 return 来返回一些内容。】

🎨示例

单行箭头函数

let sum = (a, b) => a + b;  //带参数
let double = n => n * 2;// 有一个参数
let sayHi = () => alert("Hello!"); //不带参数

多行箭头函数

let sum = (a, b) => {  // 花括号表示开始一个多行函数
  let result = a + b;
  return result; // 如果我们使用了花括号,那么我们需要一个显式的 “return”
};

JS里内置的几个交互函数

  • prompt(title, [default]);

    提出一个问题,并返回访问者输入的内容,如果他按下「取消」则返回 null

  • confirm(question)

    提出一个问题,并建议用户在“确定”和“取消”之间进行选择。选择结果以 true/false 形式返回。

  • alert(message)

    输出一个 消息

这些函数都会产生 模态框,它们会暂停代码执行并阻止访问者与页面的其他部分进行交互,直到用户做出回答为止。

image-20211017182526704

结语

文章会持续更新,优化,以及重构!

参考资料:

Functions

Function expressions

Arrow functions, the basics


🎨【点赞】【关注】不迷路,更多前端干货等你解锁

往期推荐

👉 产品、技术、设计等各互联网领域的「基础术语」扫盲

👉 Web安全的防御手段都在这里了!

👉 JavaScript的7大类型补缺补漏!

👉 JavaScript深拷贝和浅拷贝看这篇就够了!