Javascript shorthand
Javascript shorthand
本文关键字:shorthand Javascript 更新时间:2023-09-26
如果我能说:
var big = (x > 10) ? true : false;
而不是:
var big;
if (x > 10) {
big = true;
}
else {
big = false;
}
我如何使它同样更短?
var now = new Date
if (now.getHours() < 5) {
return "late night pick me up";
}
else if (now.getHours() < 9) {
return "breakfast";
}
else if (now.getHours() < 13) {
return "lunch";
}
else if (now.getHours() < 17) {
return "afternoon snak";
}
else {
return "dinner";
}
谢谢一大堆!
var now = new Date().getHours();
return now < 5 ? "late night pick me up" :
now < 9 ? "breakfast" :
now < 13 ? "lunch" :
now < 17 ? "afternoon snak" : "dinner";
如果没有一堆混乱的嵌套三元运算符,你就不能。三元运算符只适用于一个衬里。
你不能特别速记,我个人会这样写:
if (now.getHours() < 5) return "late night pick me up";
else if (now.getHours() < 9) return "breakfast";
else if (now.getHours() < 13) return "lunch";
else if (now.getHours() < 17) return "afternoon snak";
else return "dinner";
这还不错吧?
你可能
不想这样做,因为可以说它的可读性会降低。 但是,您可以简单地嵌套三元运算符,如下所示:
var now = (now.getHours() < 5) ? "late night pick me up" : ((now.getHours() < 9) ? "breakfast" : ((now.getHours() < 13) ? "lunch" : ((now.getHours() < 17) ? "afternoon snack" : "dinner")))));
我希望你能明白为什么这不是一个好主意!
像这样更长、更复杂的条件通常需要多条线和良好的块分隔才能轻松理解 - 虽然你可以添加换行符,但标准的if-else
块最终将在清楚地表达你的意图方面成为赢家。
首先,尝试var big = x > 10;
而不是var big = (x > 10) ? true : false;
其次,当你回来时,你不需要if-else。
//looks a little confusing, but you can move the return to line after ifs
var now = new Date
if (now.getHours() < 5) return "late night pick me up";
if (now.getHours() < 9) return "breakfast";
if (now.getHours() < 13) return "lunch";
if (now.getHours() < 17) return "afternoon snak";
return "dinner";
看起来会很乱:
return ((now.getHours() < 5)?"late night pick me up":
((now.getHours() < 9)?"breakfast":
((now.getHours() < 13)?"lunch":
((now.getHours() < 17)?"afternoon snack":
"dinner"
)
)
)
);
您必须记住匹配括号。
你总是可以使用 switch 语句:
switch(true)
{
case (now.getHours() < 5):
return "late night pick me up";
break;
case (now.getHours() < 9):
return "breakfast";
break; //etc...
default:
return "dinner";
}
我在寻找其他东西时偶然发现了这个。这里有一个小速记技巧,使用逻辑运算符并滥用事实字符串文字是真实的=]
var hr = new Date().getHours();
return hr < 5 && 'late night pick me up'
|| hr < 9 && 'breakfast'
|| hr < 13 && 'lunch'
|| hr < 17 && 'afternoon snack'
|| 'dinner';
您始终可以使用表来复制功能:
var now = new Date();
var meals = [
"late night pick me up",
"breakfast",
"lunch",
"afernoon snack",
"dinner"];
return meals[parseInt(now.getHours()-4)/4];
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 将函数的上下文应用于javascript变量
- 使用php或javascript从facebook相册URL中删除多余的部分
- 正在添加'X'按钮,在文本字段旁边使用javascript
- 如何在JavaScript中将字符串转换为函数引用
- 模糊事件的Javascript测试
- Javascript更改图标
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 如何使用WCF服务和javascript表单post上传.doc文件
- javascript结合了数组和字典
- 这是什么 ==- javascript 运算符
- Javascript 条件返回语句(Shorthand if-else 语句)
- Javascript push() shorthand?
- Javascript regex shorthand?
- JavaScript: Is '!0' shorthand of Boolean 'true
- javascript shorthand for python a[1:]
- Javascript Shorthand for getElementById
- Javascript shorthand
- JavaScript if/else shorthand