在javascript中使用switch语句在小时数发生变化时显示不同的消息

在javascript中使用switch语句在小时数发生变化时显示不同的消息,javascript,jquery,if-statement,switch-statement,Javascript,Jquery,If Statement,Switch Statement,它在if/else语句上运行良好,但一旦使用switch语句,即使我的本地时间小于24(12am),默认消息也只显示。一如既往地提前感谢您的帮助 var today=新日期(); var timeNow=today.getHours() 变量问候语=$(“#问候语”); 开关(timeNow){ 案例时间现在>17:greeting=“晚上好”欢迎访问我的网站”; 打破 案例时间现在>12:greeting=“下午好”欢迎访问我的网站”; 打破 case timeNow>6:greeting=

它在if/else语句上运行良好,但一旦使用switch语句,即使我的本地时间小于24(12am),默认消息也只显示。一如既往地提前感谢您的帮助

var today=新日期();
var timeNow=today.getHours()
变量问候语=$(“#问候语”);
开关(timeNow){
案例时间现在>17:greeting=“晚上好”
欢迎访问我的网站”; 打破 案例时间现在>12:greeting=“下午好”
欢迎访问我的网站”; 打破 case timeNow>6:greeting=“早上好
欢迎访问我的网站”; 打破 默认设置:greeting=“欢迎……但现在不是睡觉时间吗?”; } $('#greeting').html(''+greeting+'')


欢迎光临
您的
开关
语句试图将
timeNow
的值与
timeNow>17等的结果进行比较,这将是一个布尔值(
true
false
)。当然,没有一个匹配,因为没有
Date
实例是
=
或者
true
或者
false

您最初的
if/else if/else
可能是正确的选择

但是,您可以在JavaScript中使用
开关
(与许多其他语言不同),因为
大小写
值可以是表达式,并且它们按照源代码顺序进行计算,只使用第一个匹配的值(而不是
默认值
,如果其他值都不匹配,则始终最后使用该值)。所以如果你改变

switch (timeNow) {

…然后将
true
timeNow>17
的结果进行比较,如下所示:

var today=新日期();
var timeNow=today.getHours()
变量问候语=$(“#问候语”);
切换(true){//17:greeting=“晚上好
欢迎访问我的网站”; 打破 案例时间现在>12:greeting=“下午好”
欢迎访问我的网站”; 打破 case timeNow>6:greeting=“早上好
欢迎访问我的网站”; 打破 默认设置:greeting=“欢迎……但现在不是睡觉时间吗?”; } $('#greeting').html(''+greeting+'')


欢迎光临
您的
开关
语句试图将
timeNow
的值与
timeNow>17等的结果进行比较,这将是一个布尔值(
true
false
)。当然,没有一个匹配,因为没有
Date
实例是
=
或者
true
或者
false

您最初的
if/else if/else
可能是正确的选择

但是,您可以在JavaScript中使用
开关
(与许多其他语言不同),因为
大小写
值可以是表达式,并且它们按照源代码顺序进行计算,只使用第一个匹配的值(而不是
默认值
,如果其他值都不匹配,则始终最后使用该值)。所以如果你改变

switch (timeNow) {

…然后将
true
timeNow>17
的结果进行比较,如下所示:

var today=新日期();
var timeNow=today.getHours()
变量问候语=$(“#问候语”);
切换(true){//17:greeting=“晚上好
欢迎访问我的网站”; 打破 案例时间现在>12:greeting=“下午好”
欢迎访问我的网站”; 打破 case timeNow>6:greeting=“早上好
欢迎访问我的网站”; 打破 默认设置:greeting=“欢迎……但现在不是睡觉时间吗?”; } $('#greeting').html(''+greeting+'')


欢迎光临开关盒只执行相等测试(==)如
案例23:
开关盒只执行相等测试(==)如
案例23:

(意识到这几乎肯定是重复的,并找到了早期版本,因此我将上述内容转换为CW。)(意识到这几乎肯定是一个复制品,并找到了一个早期版本,因此我将上面的内容转换为CW。)