[野人献曝] Javascript 中 switch 的弹性用法

在使用 switch 来判断条件时,通常以一个变数来比对多种可能值,例如:

function checkColor(color){  switch(color){    case 'Red':      return 'Red'    case 'Green':      return 'Green'    case 'Blue':      return 'Blue'    default:       return 'Others'  }}

而当我们想利用 switch 来判断表达式时该怎么做呢?
先来个错误示範:

function checkAge(age){  switch(age){    case (age > 18):      console.log('case 1')      break    case (age == 18):      console.log('case 2')      break    case (age < 18):      console.log('case 3')      break    default:      console.log("didn't match any one")      break  }}checkAge(12) // didn't match any one

这是因为 switch 比对条件的过程相当于

age === (age > 18)// 12 === true // return false

因此判断的结果自动 Fall back 到 default 去了

也因为这个特性,所以可以倒过来用一个结果值来比对多种条件:

function checkAge(age){  switch(true){               // 这行是关键,帮你画重点    case (age > 18):      console.log('case 1')      break    case (age == 18):      console.log('case 2')      break    case (age < 18):      console.log('case 3')      break    default:      console.log("didn't match any one")      break  }}checkAge(12) // case 3

知道这点以后,就可以用 switch 来做跟 if...else 一样的事啰!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章