三元运算符

语法: 条件?成立做的事情:不成立做的事情;<=>相当于简单的if/else判断(简化写法)

var num = 12;
if(num>10){
num ++;
}else {
num--;
}
=> 相当于三元运算符:
num > 10? num++ : num--;

特殊情况:

//=>如果三元运算符中某一部分成立不需要任何的处理我们用null/underfined/void 0...占位即可
var num=12;
num>10?num++ : null;
//=>如果需要执行多项任务,我们用小括号包裹起来,每条语句用逗号隔开
num=10;
num>10?(num++,num*=10):null;

思考题:

var num =12;
if(num>0){
if(num<10){
num++;
}else {
num–;
}
}else {
if(num==0){
num++;
num=num/10;
}
}
改成三元运算符:
var num=12;
num > 0 ? (num < 10 ? num ++ : num– ) : (num–, num=num/10);

switch case

js中的一种判断方式, switch case 应用于变量(表达式)在不同值情况下不同的操作,每一个case结束后都需要加break(结束整个判断)

var num = 10;
if(num==10){
num ++;
}else if(num==5){
num--;
}else {
num=0;
}
改成switch case
var num = 10;
switch(num){
case 10:
num++;
break;
case 5:
num--;
break;
default:
num=0;
}
 
> 不加break,后面的条件不管是否成立,都会被执行;利用此机制,我们可以完成一些特殊的处理,例如:如果num等于10或者5都要做同一件事情,那么我们写在一起,不用加break即可(去掉case10 里面的break)
  • 思考: n++和n=n+1 一样吗?

    1. var n=’10’;
      n = n+1;
      console.log(n) =>101
      //=> 属于字符串拼接,结果是‘101’
      遇到字符串是字符串拼接,遇到数值是数学运算,如果是n++会是数学运算

    =是赋值,==判断是否相等,===判断绝对相等(类型和值都必须相等)

'10'==10 => true 数值相等,类型不同,相等比较,如果等号左右两边的类型不一样首先转化一样的数据类型,然后进行比较,当前案例是把字符串'10'转化为数字,然后再比较。
'10'===10 => false 数值和类型都相等。绝对比较,如果两边的数据类型不一样,则直接不想打呢个,它要求类型和值都完全一样才会相等(真实项目中为了保证严谨性,使用绝对等号)
  • switch case中的每一种case情况的比较都是基于”===”绝对相等来完成的。
    例子:

var num = 5;
switch(num){
case 10:
 
case 5:
num--;
break;
default:
num=0;
}
console.log(num);
VM1668:12 4

FOR循环

作用:按照一定的规律重复去做某件事情,此时需要循环处理。

var ary = [12,23,34];
ary
=> {
0:12
1:23
3:34
length:3
}
//输出数组中的每一项内容
/* ==itar [TAB]键 自动补全循环的代码
for (var i=0; i<ary.length; i++){
//=>第一次循环:i=0;i<3..i=1 =>ary[0]
//=>第二次循环:i=1;i<3..i=2 =>ary[1]
//=>第三次循环:i=2;i<3..i=3 =>ary[2]
//=>第四次循环:i=3;i<3 循环结束(本次没有循环)
console.log(ary['i']);
}
 
* 倒着输出:
var ary = [12,23,34];
//=> 倒着输出每一项。倒着输出 34 23 12
//=> ary.length;当前数组中最后一项的属性名(索引)
for (var i= ary.length - 1; i >= 0;i-- ){
console.log(ary[i])
}
=>
34
23
12
* 输出奇数项
var ary= [12,23,34];
for (var i=0; i<ary.length; i+=2){
//=> 输出数组中的奇数项内容
// i = 0 第一项 奇数项
// i = 1 第二项 偶数项
// i = 2 第三项 奇数项
// 索引为偶数,代表奇数项,如果判断当前i的值是奇数还是偶数?
//12%5:%称为模,用12除以5取余数
 
console.log(ary[i]);
}
 
}
  • FOR循环的语法组成:

    1. 定义初始值 var i = 0

    2. 设置循环条件(条件成立循环继续,不成立循环结束)i< ary.length

    3. 条件成立会执行循环体中的内容(大括号包裹的就是循环体)

    4. 执行步长累加的操作

      • FOR循环的循环体中,两个常用关键字:

    5. continue:继续

    6. break:中端或者结束

      for (var i = 0; i<10;i++){
      if(i<5){
      i++;
      continue; //=> 结束本轮循环(循环体中continue的代码不在执行)继续下一轮
      }
      if(i>7) {
      i + =2;
      break;//=>强制结束循环,不能任何的处理
      }
      i += 3;
      }

    思考题:
    for (var i=1; i<=10; i+=2){
    if(i <= 5){
    i++;
    continue;
    }else {
    i -=2;
    break;
    }
    i–;
    console.log(i);
    }
    =>5

 

 
 
 

JS系列:三元运算符与循环的更多相关文章

  1. js 中三元运算符的运用

    外层为false,逐级向内层判断 $scope.nums=700; $scope.result=($scope.nums>300)?($scope.nums>400)?($scope.nu ...

  2. JS使用三元运算符判断三个数中最大的数

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. js中三元运算符的两种情况

    一.一般情况 <script type="text/javascript"> var b=5; (b == 5) ? a="true" : a=&q ...

  4. 5、前端--js常量、变量、5种基本数据类型(number string boolean undefined object)、运算符、流程控制、三元运算符、函数、自定义对象、内置对象、BOM操作

    变量与常量 在JS中声明变量需要使用关键字 老版本 var(全部都是全局变量) 新版本 let(可以声明局部变量) # 推荐使用let(其实问题不大) 在JS中声明常量也需要使用关键字 const # ...

  5. C#基础知识系列一(goto、i++、三元运算符、ref和out、String和string、重载运算符)

    前言 这两天在网上看到的总结很多,尤其是博客园中的,很多很多,也给了我很多的启发,当然自己也总结过,而且有很多人也给与我一些意见和看法.不管怎样,自己还是先把所谓的基础知识加强巩固下吧. 2014年的 ...

  6. 逻辑运算符、三元运算符、for循环、stack(栈),heap(堆),方法区,静态域

    Lesson One 2018-04-17 19:58:39 逻辑运算符(用于逻辑运算,左右两边都是 true 或 false) 逻辑与-& 和 短路与-&& 区别: & ...

  7. js之运算符其它运算符(三元运算符,逗号运算符,void运算符,typeof,delete运算符)

    Javascript支持很多其它的运算符,具体如下: 一.条件运算符(?:) 条件运算符是Javascript中唯一的三个操作数的三元运算符,有时会直接称做是“三元运算符”. 基本格式:conditi ...

  8. JS,Jquery - 三元运算符

    在javascript中使用三元运算符. 要使用 " [] " ,对运算式进行包裹.

  9. js中连写两个?:三元运算符语法解释

    在angular 源码中有连写两个三元运算符的代码: var hash = isString(hash) ? hash : isNumber(hash) ? hash.toString() :$loc ...

随机推荐

  1. RxSwift 在本质上简化了开发异步程序

    RxSwift 是一个组合异步和事件驱动编程的库,通过使用可观察序列和功能样式运算符来,从而允许通过调度程序进行参数化执行. RxSwift 在本质上简化了开发异步程序,允许代码对新数据作出反应,并以 ...

  2. cronicle docker 运行试用

    Cronicle 是一款基于nodejs 开发的分布式任务调度工具,包含了比较全的UI,使用也比较简单,为了 方便学习,简单制作了一个docker 镜像,方便使用 Dockerfile   FROM ...

  3. 8-网页,网站,微信公众号基础入门(使用Python程序实现微信token验证)

    https://www.cnblogs.com/yangfengwu/p/11062034.html 设置一下IP白名单:   填写自己的服务器的IP地址 是不是不可以哈,有多少人都会入这个坑.... ...

  4. cogs 998. [東方S2] 帕秋莉·诺蕾姬

    二次联通门 : cogs 998. [東方S2] 帕秋莉·诺蕾姬 交上去后发现自己没上榜 就想着加点黑科技 把循环展开一下 结果WA了.. 万恶的姆Q /* cogs 998. [東方S2] 帕秋莉· ...

  5. 数列的前$n$项和$S_n$的求法

    相关公式 ①等差数列的\(S_n=\cfrac{n(a_1+a_n)}{2}=na_1+\cfrac{n(n-1)\cdot d}{2}\) ②等比数列的\(S_n=\left\{\begin{arr ...

  6. Linux expect详解

    随处可见的expect第一次见expect这个命令还是我第一次参加全量上线的时候,那是公司的一个牛人用Shell脚本写的一套自动部署.MD5 比对.发布的全量上线工具,没事的时候,看了下其中的几个脚本 ...

  7. docker之修改存储位置

    #停止docker 1.systemctl stop docker  2.mkdir /home/docker-lib  #在我这个项目里home是普通硬盘,在home下创建一个目录3.mv /var ...

  8. Guava Cache 缓存实现与源码分析

    目录 一.概述 1.内存缓存 2.核心数据结构 二.具体实现 0.一览众山小 1.CacheBuilder 构建器 2.LocalCache 一.概述 1.内存缓存 可看作一个jdk7的concurr ...

  9. ImportError: DLL load failed while importing win32api: 找不到指定的模块。

    这个是用pip install pywin32安装报的一个错误 据说直接使用pip install pypiwin32安装就不会有报错 但是遇到错误还是要尝试解决一下的 pip install pyw ...

  10. 假如 Redis Cluster 模式用在 T-io 上

    前言   前几天在学习Redis Cluster 模式的时候,突然想到如果把它的集群模式应用在T-io上也是挺有意思的一件事情. Redis 集群简介    Redis Cluster 中有 N 台实 ...