JavaScript切换语句混乱

时间:2017-08-25 21:34:04

标签: javascript jquery

dataSource.driverClassName=org.h2.Driver
dataSource.url=jdbc:h2:mem:MyTestDB

为什么switch语句的结果总是getDateRange = function () { date = new Date(); var test; selectedOption = $('#daterange').change().val() console.log(selectedOption) // reusult 0 switch (selectedOption) { case 0: test = '/' + date.getFullYear() + '-' + 0 + date.getMonth() + '-' + date.getDate() + '/' + date.getFullYear() + '-' + 0 + (date.getMonth() + 1) + '-' + date.getDate() break } return test } console.log($('#daterange').change().val()) // result 0 console.log(getDateRange()) // result "undefined". Why?

3 个答案:

答案 0 :(得分:2)

将您的案例陈述更改为case '0',因为val()会返回一个字符串。

另外:如果你在switch语句之后没有做任何其他的事情,除了返回你的测试变量,你也可以只返回你的值并摆脱var test



getDateRange = function() {
  date = new Date();
  selectedOption = $('#daterange').change().val();
  switch (selectedOption) {
    case '0':
      return '/' + date.getFullYear() + '-' + 0 + date.getMonth() + '-' + date.getDate() + '/' + date.getFullYear() + '-' + 0 + (date.getMonth() + 1) + '-' + date.getDate();
  }
}
console.log(getDateRange());

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="daterange" value="0" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

$('#daterange').change().val()返回一个字符串,但在切换中你会与一个数字进行比较。

此外,在当前示例中,您不需要切换,因为您只有一个案例:

getDateRange = function () {
    var selectedOption = $('#daterange').change().val();
    if (selectedOption === '0') {
       return ...
    }
}

答案 2 :(得分:0)

我javascript你的dataType应该与你的比较operatot非常匹配,所以比较它与===

在这种情况下,类型和数据都将匹配在一起。

getDateRange = function() {
  date = new Date();
  selectedOption = $('#daterange').change().val();
  switch (selectedOption) {
    case '0':
      return '/' + date.getFullYear() + '-' + 0 + date.getMonth() + '-' + date.getDate() + '/' + date.getFullYear() + '-' + 0 + (date.getMonth() + 1) + '-' + date.getDate();
  }
}
console.log(getDateRange());