首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

js里写case

在JavaScript中,switch...case语句是一种流程控制结构,用于基于不同的条件执行不同的代码块。其基本语法结构如下:

代码语言:txt
复制
switch(expression) {
  case value1:
    // 当 expression 等于 value1 时执行的代码
    break;
  case value2:
    // 当 expression 等于 value2 时执行的代码
    break;
  // ... 可以有任意数量的 case
  default:
    // 当 expression 不等于任何 case 值时执行的代码
}
  • expression 是要被评估的表达式,其结果会与每个 case 后的值进行比较。
  • value1, value2, ... 是与 expression 进行比较的值。
  • break 语句用于终止 switch 语句的执行,并跳出该结构,防止执行多个 case 中的代码。
  • default 是可选的,当 expression 不匹配任何 case 时执行。

优势:

  1. 可读性:对于多条件判断,switch...case 结构比多个 if...else 更具可读性。
  2. 效率:在某些JavaScript引擎中,switch...case 的性能可能优于多个 if...else,尤其是当有大量条件时。

应用场景:

  • 当需要根据一个变量的不同值执行不同操作时。
  • 在处理状态机或事件处理器时。

示例:

假设你有一个表示星期的变量 day,你想根据这个变量打印出不同的消息。

代码语言:txt
复制
let day = 3;

switch(day) {
  case 1:
    console.log("星期一");
    break;
  case 2:
    console.log("星期二");
    break;
  case 3:
    console.log("星期三");
    break;
  // ... 其他星期
  default:
    console.log("无效的星期");
}

在这个例子中,因为 day 等于 3,所以会打印出 "星期三"。

常见问题及解决方法:

  1. 忘记写 break:如果在 case 语句后忘记写 break,JavaScript会继续执行下一个 case 的代码,这被称为“case”穿透。为避免这种情况,确保在每个 case 后都加上 break
  2. default 语句的使用:虽然 default 是可选的,但在处理可能未知的值时,使用 default 可以增加代码的健壮性。
  3. 类型匹配switch...case 是严格相等(===)比较,所以要注意数据类型的匹配。例如,字符串 "1" 和数字 1 是不相等的。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 绕过JS写爬虫

    http://data.eastmoney.com/jgdy/tj.html       我们希望抓取的是js生成的表格。      ...这种带有js的网站抓取其实不是那么简单的,基本分为那么几种方法,一种是观察页面,有的会有json数据,有的有js代码可以解析目标的url;一种是使用渲染工具;还有一种就是用工具来点击相关button,来抓取...我们希望爬取的是表格中的数据,但是如果我们仔细看一下html代码,会发现,这其实是js生成的,下面这张图是源代码的截图。 ?       这就很尴尬了,怎么办呢?...然后我们就点击第二页、第三页不断的来观察究竟js代码访问了什么后台的url。...pagesize=50&page=1&js=var YnQNqDYj¶m=&sortRule=-1&sortType=0&rt=50585869 http://data.eastmoney.com

    14.9K20

    js写插件教程

    button> //这里是插件的代码;我为了方便都写到一个html中了;请把这个script标签中的内容单独写在一个js...号(叹号)或者;(分号)这不是写错了,为了防止那个二货写的js结束没有分号;而可能发生报错 /* ;function(win,doc,$,undefined){ }(window...//我们随便写一个插件吧 比如你要点击按钮 添加input的值到 div里 var addHtml = function(demo,btn){//插件名,调用的时候直接new一下插件名就行了并传参数或者传对象...addHtml.prototype = {//给函数写方法;这里可能不止一个函数;你还记得你在全局里写一个个的function吗;贼乱; //找也不好找;把一个个函数都写到对象的属性里;...;整个插件里this都是只得这个函数(实例);除非你又引入了其他的函数里的(其他函数里的可能指向就是window了) var _self = this;////把this保存下来防止在局部函数内部取不到

    35.1K10

    代码里注释写太多,会挨打吗?

    前几天,有个同行朋友在我的微信上留言,问我项目代码里注释写太多会挨打吗?顺手还给我甩了一张截图,上面密密麻麻的全是手工注释。 ? 看完之后,我跟她说,挺好的,我已经备好手枪了。...「 如何把握这个尺度 」 代码里写注释,如何才叫多,什么是多,什么是少,如何才能把握这个尺度? 还记得老前辈的话犹在耳畔,一份经久不衰的代码,注释量与代码量的比例应该至少为 2:1。...不过也有在代码里玩出花样的。我司之前有个同事,写的注释特别有意思,注释里面带了很多段子,有时候找 BUG 找的心烦,看到他的诡异注释还是挺不错的。...「 周围同事怎么看 」 对于这个问题,我还特意问了下我司的后端大佬,他回复我,其他语言我不好说,反正在java里,如果在方法里面写注释,不单独拿出一行写,我绝对会nen死他,哈哈哈哈。...请记住,这是一句装逼话,群里吹水你也信,你看看Vue.js源码里有多少注释(杠精不要跑过来跟我说,/* 英文的注释不算 */ )。 Are you sure ?

    4.3K40

    js 函数柯里化(Currying)

    原文链接:https://blog.spiritling.cn/posts/c0f17b1f/ 在计算机科学中,柯里化(Currying),又译为卡瑞化或加里化,是把接受多个参数的函数变换成接受一个单一参数...从一道面试题谈谈函数柯里化从一道面试题谈谈函数柯里化 题目:使用 js 实现 add(1)(2)(3)(4) 返回 10 函数柯里化要求多个参数转为单一参数,所以相当于 function add()..._add.getResult = function () { return result; }; return _add; }; 这样通过上面函数就可以实现基本的柯里化要求...当然有了,在 js 中函数是有原型链的,所以每个函数都继承了基本的一些方法。 当你定义一个函数后,你如果打印时只输入函数名,并不执行,则函数内部信息就被打印出来。...结束 通过上面的研究,解决一个函数柯里化问题。

    1.5K20

    js写插件教程深入

    原文地址:https://github.com/lianxiaozhuang/blog 转载请注明出处 js 写插件教程深入 1.介绍具有安全作用域的构造函数 function Fn(name...constructor:Fn, getF:function(){ console.log(1); } } new Fn(); //new 出来的Fn就是一个构造函数 //倘若有人忘记写new...function Fn(){} Fn.prototype.getC = function(){} //大家可能都会有这样的纠结,getC到底写到this里还是原型里 //这要从内存说起;写到原型上,每执行一个实例...,getC不需要开辟新的内存 //故,可以把一些纯计算的方法,写原型上,如果方法和实例本身有关,应该写道this中 4.方法名防止冲突处理 //如果在引入你的插件之前,window下已经有Fn的变量...var MyPlugin = function(options) { this.name = name; this.init(); }; //覆写原型链

    13.8K10

    JS中的柯里化

    作为函数式编程语言,JS带来了很多语言上的有趣特性,比如柯里化和反柯里化。 这里可以对照另外一篇介绍 JS 反柯里化 的文章一起看~ 1....以上柯里化函数已经能解决一般需求了,但是如果要多层的柯里化总不能不断地进行currying函数的嵌套吧,我们希望经过柯里化之后的函数每次只传递一个或者多个参数,那该怎么做呢: function curryingHelper...也可以使用下划线来指定未确定的参数 var sendPost = sendAjax( _ , _ , { type: "POST", contentType: "application/json" }) JS...// 绑定 bar() // 888 ---- 网上的帖子大多深浅不一,甚至有些前后矛盾,在下的文章都是学习过程中的总结,如果发现错误,欢迎留言指出~ 参考: JS...高级程序设计 JS中的柯里化(currying) 前端开发者进阶之函数柯里化Currying 浅析 JavaScript 中的 函数 currying 柯里化 掌握JavaScript函数的柯里化 函数式

    4.6K20
    领券