当前位置 博文首页 > 文章内容

    jsswitch语句,js中switch语句用法详解+循环相关用法

    作者:zyd1113wz 栏目:网站相关 时间:2021-03-30 11:03:47

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



          switch

         关键点

         如果多种 case 匹配一个 case 值,则选择第一个 case(break会跳出switch语句)。

         如果未找到匹配的 case,程序将执行default里的代码块。

         代码块不需要加花括号。

         Switch case 使用严格比较(===),也就是值跟类型都得一致。

         可以多个case匹配同一代码块。

         语法

         switch 语句来选择多个需被执行的代码块之一。

         语法

         计算一次 switch 表达式。

         把表达式的值与每个 case 的值进行对比(===)。

         如果存在匹配,则执行关联代码,否则执行默认代码块。

         实例

         getDay() 方法返回 0 至 6 之间的周名数字(weekday number)

         (Sunday=0, Monday=1, Tuesday=2 …)

         本例使用周名数字来计算周的名称:

         break关键词

         JavaScript 遇到break关键词,它会跳出 switch 代码块。

         break能够节省大量执行时间,因为它会“忽略” switch 代码块中的其他代码的执行。

         不必中断 switch 代码块中的最后一个 case,代码块在此处会自然结束。

         default关键词

         default 关键词规定不存在 case 匹配时所运行的代码:

         如果今日既不是周六(6)也不是周日(0),则输出一段默认消息:

         默认的 case 不必是 switch 代码块中最后一个 case。

         如果 default 不是 switch 代码块中最后一个 case,请记得用 break 结束默认 case。

        不同case共享同一个代码块。

         在本例中,case 4 和 5 分享相同的代码块,而 0 和 6 分享另一段代码块:

         Switch case 使用严格比较(===)。

         下面的代码中,没有匹配的case,走default:

         之前项目中用到switch语法时,因为不熟悉。

         多行的代码块加了花括号,(可以不加)。

         放最后的case或者default加了break(可以不加)。

         js循环相关

         在讲循环的之前,先知道一下循环结构的执行步骤:

         声明循环变量;

         判断循环条件;

         执行循环体操作;

         更新循环变量;

         然后循环执行2-4,直到条件不成立,跳出循环。

         while循环

         while循环()中的表达式,运算结果可以是各种类型,但是最终都会转为真假,转换规则如下。

         Boolean:true为真,false为假。

         String:空字符串为假,所有非空字符串为真。

         Number:0为假,一切非0数字为真。

         null/Undefined/NaN:全为假。

         Object:全为真。

         do-while循环

         while循环特点:先判断后执行。

         do-while循环特点:先执行再判断,即使初始条件不成立,do-while循环至少执行一次。

         for循环

         for有三个表达式:①声明循环变量;②判断循环条件;③更新循环变量;三个表达式之间,用;分割,for循环三个表达式都可以省略,但是两个“;”缺一不可。

         for循环的执行特点:先判断再执行,与while相同。

         for循环三个表达式都可以有多部分组成,第二部分多个判断条件用&& ||连接,第一三部分用逗号分割。

         for-in循环

         for-in 循环主要用于遍历对象。

         for()中的格式:for(keys in zhangsan){}

         keys表示obj对象的每一个键值对的键!!所有循环中,需要使用obj[keys]来取到每一个值!!!

         for-in 循环,遍历时不仅能读取对象自身上面的成员属性,也能延续原型链遍历出对象的原型属性,所以,可以使用hasOwnProperty判断一个属性是不是对象自身上的属性.obj.hasOwnProperty(keys)==true 表示这个属性是对象的成员属性,而不是原型属性。

         查看dom元素对象所有属性名。

         与其他遍历语法的比较。

         for…in循环有几个缺点

         数组的键名是数字,但是for…in循环是以字符串作为键名“0”、“1”、“2”等等。

         for…in循环不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键。

         某些情况下,for…in循环会以任意顺序遍历键名。

         for…in循环主要是为遍历对象而设计的,不适用于遍历数组。

         for…of循环

         有着同for…in一样的简洁语法,但是没有for…in那些缺点。

         不同于forEach方法,它可以与break、continue和return配合使用。

         提供了遍历所有数据结构的统一操作接口。

         for-of循环

         ES6 借鉴 C++、Java、C# 和 Python 语言,引入了for…of循环,作为遍历所有数据结构的统一的方法。

         一个数据结构只要部署了Symbol.iterator属性,就被视为具有iterator接口,就可以用for…of循环遍历它的成员。也就是说,for…of循环内部调用的是数据结构的Symbol.iterator方法。

         for…of循环可以使用的范围包括数组、Set 和 Map 结构、某些类似数组的对象(比如arguments对象、DOM NodeList 对象)、后文的 Generator 对象,以及字符串。

         下面是一些数据结构的遍历。

         for-of循环数组

         JavaScript 原有的for…in循环,只能获得对象的键名,不能直接获取键值。ES6 提供for…of循环,允许遍历获得键值。

         上面代码表明,for…in循环读取键名,for…of循环读取键值。如果要通过for…of循环,获取数组的索引,可以借助数组实例的entries方法和keys方法。

         for-of循环Set 和 Map 结构

         上面代码演示了如何遍历 Set 结构和 Map 结构。值得注意的地方有两个,首先,遍历的顺序是按照各个成员被添加进数据结构的顺序。其次,Set 结构遍历时,返回的是一个值,而 Map 结构遍历时,返回的是一个数组,该数组的两个成员分别为当前 Map 成员的键名和键值。

         for-of循环类似数组的对象

         类似数组的对象包括好几类。下面是for…of循环用于字符串、DOM NodeList 对象、arguments对象的例子。

         循环控制语句

         break

         跳出本层循环,继续执行循环后面的语句。

         如果循环有多层,则break只能跳出一层。

         continue

         跳过本次循环剩余的代码,继续执行下一次循环。

         -对与for循环,continue之后执行的语句,是循环变量更新语句i++;

         对于while、do-while循环,continue之后执行的语句,是循环条件判断;

         因此,使用这两个循环时,必须将continue放到i++之后使用,否则,continue将跳过i++进入死循环。

         原文链接:https://blog.csdn.net/weixin_42752574/article/details/102773477