如何解决为什么下面的箭头函数不会执行,但一个简单的 if 语句会?
代码有问题吗?或者我是否缺乏对如何在没有专门调用函数的情况下触发函数的理解?
代码:
let age = prompt('How old are you?');
//Arrow function that won't execute:
()=> { return (age < 18 ? alert('You are too young!') : alert('welcome!')); };
//This executes just fine:
if (age <= 18) {
alert('You are to young!');
} else {
alert('welcome!');
};
解决方法
在 JavaScript 中,函数本身可以是变量。到目前为止,您的代码所做的是创建了一个函数,但实际上并未将其分配给变量。所以你说“这是一个要运行的函数”,但实际上从未在任何地方保存该函数。您可以在此处执行几种方法。
-
只需将代码保留为 if 语句
-
将函数分配给一个变量并像这样调用它:
var checkAge = ()=> { return (age < 18 ? alert('You are too young!') : alert('welcome!')); };
然后用 checkAge()
调用它。
你真正应该做的是将年龄作为参数传递给 checkAge 函数,如下所示:
var checkAge = (a)=> { return (a < 18 ? alert('You are too young!') : alert('welcome!')); };
checkAge(a);
因为这意味着您可以随时在代码中的其他地方再次使用该函数。
,这就是你想要做的:
const checkAge = (question = 'How old are you?') => {
let age = Number(prompt(question));
if (!isNaN(age)) {
alert(age <= 18 ? 'You are too young!' : 'welcome!');
return age;
} else {
checkAge('Please enter a number!\nHow old are you?');
}
}
// call the function
checkAge();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。