代码编织梦想

一、三目运算符(三元运算符)

if双分支有一种简写方式:条件 ? 条件成立时运行的代码段 : 条件不成立时运行的代码段
a>b ? console.log(a) : console.log(b)
这种表达双分支的方式叫做三元运算,也叫做三目运算
特点:
	可以将整个表达式当做一个值,可以赋值给一个变量,也可以输出
缺点:
	(1)格式死板;
	(2)代码功能有限;
	(3)判断功能有限;
// 案例1:判断两个变量之间的大小
var a = Number(prompt('输入第一个值'))
var b = Number(prompt('输入第二个值'))
if(a>b){
    alert('a比b大')
}
else{
    alert('b比a大')
}
// 三元运算符可以简写成以下
a>b ? alert('a比b大') : alert('b比a大')

// 案例2:判断三个变量之间的大小
var a = Number(prompt('请输入第一个数'))
var b = Number(prompt('请输入第二个数'))
var c = Number(prompt('请输入第三个数'))
if (a > b) {
    if (a > c) {
        alert('a是最大值')
    } else {
        alert('c是最大值')
    }
} else {
    if (b > c) {
        alert('b是最大值')
    } else {
        alert('c是最大值')
    }
}
// 三元运算符可以简写成以下
alert(a>b ? (a>c ? 'a是最大值' : 'c是最大值') : (b>c ? 'b是最大值' : 'c是最大值')) 
//案例练习
// 第一题:使用switch语句判断成绩的等级 0~60不及格 60~70及格 70~80丙 80~90乙 90~100甲

// 第二题:开发一款软件,根据公式(身高-108)*2=体重,可以有10斤左右的浮动。来观察测试者体重是否合适

// 第三题:输入一个数字日期,判断这个日期是这一年的第几天 例如:20160211,计算后结果为42

// 第四题:输入一个三位数,判断是否是水仙花数 (每一位的数字立方和等于这位数本身 例如 153 = 1^3+5^3+3^3)

// 第五题:小明学习js用了7896709887秒。问:共多少天,多少小时,多少分钟,多少秒?




案例答案
// 第一题
var score = prompt("输入分数:");
  score = parseInt(score / 10)
  switch(score){
      case 10:
      case 9:
          alert('优秀')
      break;
      case 8:
          alert('良好')
      break;
      case 7:
          alert('一般')
      break;
      case 6:
          alert('及格')
      break;
      default:
          alert('挨打')
  }

// 第二题
var height = Number(prompt("请输入身高:"));
var weight = Number(prompt("请输入体重:")); 
var res = (height - 108) * 2 
if(height<=100){
    alert('你太小了,不适合用这个公式进行计算')
}
else if(weight>=300){
    alert('你太小了,不适合用这个公式进行计算')
}
else{
    if(res-weight>=-10 && res-weight<=10){
        alert('你的身材还阔以')
    }
    else{
        alert('需要锻炼了')
    }
}

// 第三题
var year = Number(prompt('请输入年份:'))
var month = Number(prompt("请输入月:"))
switch(month){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        alert('这个月有31天')
    break;
    case 4:
    case 6:
    case 9:
    case 11:
        alert('这个月有30天')
    break;
    case 2:
        if(year%4==0&&year%100!=0 || year%400==0){ 
            alert('这个月的天数是29天')
        }
        else{
            alert('这个月的天数是28天')
        }
    break;
    default:
        alert('当前输入有误')
}

// 第四题
var num = Number(prompt('请输入三位正数:'));
if(num>=100&&num<=999){
    var a = parseInt(num / 100 )
    var b = parseInt(num / 10 % 10)
    var c = num % 10
    if(a*a*a+b*b*b+c*c*c==num){
        alert('YES')
    }
    else{
        alert('NO')
    }
}
else{
    alert('请输入三位数')
}

// 第五题
var allSeconds = 7896709887;
var day = parseInt(allSeconds / 60 / 60 / 24)
var hour = parseInt(allSeconds / 60 / 60 % 24)
var miu = parseInt(allSeconds / 60 % 60)
var sec = allSeconds % 60
console.log('学习js花了'+ day+'天'+hour+'小时'+ miu+'分钟'+sec+'秒')

二、if

(一)、if单分支:只有一个条件,条件成立,执行语句,否则不执行

// 单分支语法
if(条件表达式){
	当条件表达式的结果为true的时候要执行的代码
}

// 案例:判断年龄
var age;
if(age>18){
   alert("已经成年了");
}

(二)、if双分支:有两个条件,条件成立,执行语句1,条件不成立,执行语句2

// 双分支语法
if(条件表达式){
	当条件表示式的结果为true的时候要执行的代码
}else{
	当条件表达式的结果为false的时候要执行的代码   
}

// 案例:根据年龄判断是否成年
if(age>18){
   alert("成年了");
}else{
    alert("未成年");
}

(三)、if多分支:条件成立,执行语句1,不成立则有多种选择

// 多分支语法
if(条件表达式1){
	当条件表达式1的结果为true的时候,要执行的代码
}else if(条件表达式2){
	当条件表达式2的结果为true的时候,要执行的代码
}else if(条件表达式3){
	当条件表达式3的结果为true的时候,要执行的代码
}

// 案例:判断考试成绩
var score = Number(prompt("请输入考试成绩:"));
if(isNaN(score)){
	alert("输入不正确");   
}else{
    if(score>=0 && score<60){
       alert("不及格");
    }else if(score>=60 && score<70){
       alert("及格了");
    }else if(score>=70 && score<80){
        alert("丙");         
    }else if(score>=80 && score<90){
        alert("乙");         
    }else if(score>=90 && score<=100){
        alert("甲");         
    }else{
        alert("输入不正确");
    }
}

(四)if分支嵌套(多条件):分支进行嵌套使用 表示有多种选择

如果多个条件是递进关系,就可以采用如下方式实现:

1.嵌套

在if 或 else 语句中,又出现了一个完全独立的if或else语句,称为嵌套if

// 分支的嵌套
if(条件1){
	if(条件2){
  	满足条件1和条件2才会执行这里的代码
	}
	else{
  	满足了条件1但是没有满足条件2执行这里的代码
	}
}

// 案例:判断多个变量的最大值
var a,b,c;
if(a>b){
    if(a>c){
       alert("变量a最大");
    }else{
        alert("变量c最大");
    }
}else{
    if(b>c){
       alert("变量b最大");
    }else{
        alert("变量c最大");
    }
}


//if分支的小细节
// 细节1:if条件的结果是布尔值,所以可以将布尔值当做条件放入if的小括号中
if(true){
   alert("真的");
}else{
    alert("假的");
}

// 细节2:如果将别的非布尔值的表达式或数据放入条件小括号中,会发生隐形的类型转换
if(2){ // 这里的2被转换成了布尔型
	console.log(2);
}
2.逻辑运算符
if(cls==1 && sex=="男"){
	console.log("矿泉水");
}else if(cls==1 && sex=="女"){
	console.log("农夫山泉");
}

注意事项:
	js会自动采用Boolean对if中的条件进行转换
	例如:
	if(0)等价于if(Boolean(0))if(false)
	if(5)等价于if(Boolean(5))if(true)

二、switch分支语句

定义:switch:控制开关,是另一种分支语句,也可以叫做多路判断、case穿透

(一)、格式

swich(变量){
     case 情况1:语句1;break;
     case 情况2:语句2;break;
     ...
     default:其它语句;
}

(二)、原理

先把变量中的数据拿来和case后的数据进行恒等比较,如果相等,就执行case后面的语句,直到遇到break或整个switch执行完成为止。

(三)、指令

1.default:case 没有列举到的其他情况

2.break:跳出他所在的switch和循环代码块

switch(money){
case 1:console.log("内容");break;
case 2:console.log("内容");break;
case 3:console.log("内容");break;
case 4:console.log("内容");break;
default:console.log("内容");
}

//注意:使用多路判断的时候,能使用switch进行判断,就尽量使用switch,因为switch的判断都是确定的值,条件比较简单,所以效率高

if和switch 的使用场合

二者可以通用

  1. 如果判断的条件比较复杂,使用if分支
  2. 条件是确定的值,分两种情况:
  • 如果判断的分支小于等于3个,就使用if,这时候的效率和switch一样
  • 如果大于3个,就使用switch。

​ 3.switch判断使用的是全等于(===)

条件是点(具体的值),switch简单

条件是范围,if简单

//注意:点用switch,范围用if。
// 案例1:使用if分支判断是闰年还是平年
var year = prompt('请输入年份')
year = Number(year)
if(year % 400 ==0){
    alert('世纪闰年')
}
else if(year % 4 ==0 && year % 100 !=0){
    alert('普通闰年')
}
else{
    alert('平年')
}

// 案例2:使用if分支判断分数的成绩等级
var num = Number(prompt('请输入您的分数'))
if(num>=90&&num<=100){
    alert('起飞~')
}
else if(num>=80&&num<90){
    alert('准备起飞')
}
else if(num>=70&&num<80){
    alert('良好')
}
else if(num>=60&&num<70){
    alert('继续努力')
}
else{
    alert('不及格 回家男女混合双打')
}

// 案例3:使用switch判断某个月有多少天(不写break就是case穿透)
var year = Number(prompt('请输入年份:'))
var month = Number(prompt("请输入月:"))
switch(month){
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        alert('这个月有31天')
    break;
    case 4:
    case 6:
    case 9:
    case 11:
        alert('这个月有30天')
    break;
    case 2:
        if(year%4==0&&year%100!=0 || year%400==0){ 
            alert('这个月的天数是29天')
        }
        else{
            alert('这个月的天数是28天')
        }
    break;
    default:
        alert('当前输入有误')
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Tang_jibin/article/details/129828405

[译] 玩转 javascript 面试:何为 promise ?_weixin_34033624的博客-爱代码爱编程

原文链接 Medium - Master the JavaScript Interview: What is a Promise? 开门见山,何为 Promise ? 一个promise指的是一个可能会在未来的某个时间点产生一个单一值的对象:不论是一个 resolved 值,还是一个未 resolved 值的原因(比如发生了网络

flutter基础——移动开发跨平台技术的百家争鸣_流沙_佩的博客-爱代码爱编程

每日一言:人生没有彩排,每一天都不会重来,唯一能让我们走得更远更宽的方法,就是成为比昨天更好的自己。做个行动派吧,每天微小的改变,都能给你的人生带来很大的不同。 前言 本来这一篇应该介绍如何搭建Flutter开发

康托尔、哥德尔、图灵——永恒的金色对角线(转)-爱代码爱编程

转自:By 刘未鹏  C++的罗浮宫  (http://blog.csdn.net/pongba)   我看到了它,却不敢相信它 。                                      ——康托尔 计算机是数学家一次失败思考的产物。                            ——无名氏 哥德尔的不完备性定理震撼了2

面试章——带你玩转多级缓存和懒加载-爱代码爱编程

文章目录 一、一级缓存1.1、什么是缓存1.2 、Mybatis一级缓存二、二级缓存2.1、Mybatis二级缓存2.2、实现方式2.3、操作流程2.4、失效策略2.5、淘汰策略2.6、开启缓存三、懒加载3.1、简介3.2、Mybatis懒加载四、代码4.1、POJO类4.2、Mapper接口4.3、Mapper接口4.4、配置文件4.5、数据库脚

前端JavaScript基础-爱代码爱编程

目录 JavaScript基础 1:JS概述 1.1:历史: 1.2:现状: 1.3:特点: 1.4:应用场景   2.搭建开发环境 2.1:浏览器: 2.2:服务器端 2.3:运行JS 3.语法规范 4.变量 4.1:声明变量 4.2变量的命名规范 4.3变量赋值 5.常量 6.数据类型 6.1数值型: 6.2字符

JavaScript 基础入门-爱代码爱编程

JavaScript 基础入门 简介一、JS 基础语法1、JS 语法与变量(1)JavaScript 的书写位置(2)认识输入输出语句(3)学会处理报错(4)变量(5)变量声明提升2、JS 基本数据类型(1)数据类型简介和检测(2)Number(数字)类型(3)String(字符串)类型(4)Boolean(布尔)类型(5)Undefined 类型

JavaScript基础总结(1)-爱代码爱编程

Javascript简介 弱类型的脚本语言。代码是逐行执行的 分为嵌入式,外链式{<script scr=''></script>} 与用户交互 1.alert :弹出警示框 2.prompt:弹出输入框 3.console.log:在控制台上打印 4.document.write:在页面输出、显示 一. 变量 1.J

玩转js之06-操作符_小陈呐~的博客-爱代码爱编程

一、操作符有哪些? 一元操作符 只能操作一个值的操作符叫做一元操作符。一元操作符是 ECMAScript 中最简单的操作符。 自增 都是让变量的值加1,无论前置还是后置 既有存值操作也有取值操作前置++ : 就是先把变量修改了 再取值操作,先加后取 后置++ 就是先取变量的值 然后在加1操作,先取后加 自减 同上 例题 题1: var a

javascript基础之五javascript分支语句_码上有你_ll的博客-爱代码爱编程

1. JavaScrip分支语句 1.0 程序的执行顺序 在程序开发中,程序有三种不同的执行方式: 顺序 —— 从上向下,顺序执行代码分支 —— 根据条件判断,决定执行代码的 分支循环 —— 让 特定代码 重复 执

【javascript详解】javascript语言的特性以及dom操作和表单操作-爱代码爱编程

文章目录 1️⃣ 一、前端简介🚋 1、三要素🎈 2、CSS预处理器 2️⃣ 二、简单使用🚋 1、引入JavaScript🎈 2、弹窗——alert()🌈 3、调试——console.log() 3️⃣ 三、数

非零基础自学前端最后一遍 二 javascript基础 5 javascript分支语句 5.9 逻辑与的本质和推导结论-爱代码爱编程

非零基础自学前端最后一遍 文章目录 非零基础自学前端最后一遍二 JavaScript基础5 JavaScript分支语句5.9 逻辑与的本质和推导结论5.9.1 逻辑与的本质

vue中名词解释-爱代码爱编程

No名称略写作用应用场景其他1 单页面应用 (Single-page application) SPA 1,控制整个页面 2,抓取更新数据 3,无需加载,进行页面切换 丰富的交互,复杂的业务逻辑的web前端一般要求后端提供api数据接口2  单文件组件 Single-File  Components (也被称为*.vue文件) SFC将js,html,cs

rust 中的条件、循环结构——rust语言基础08_rust for-爱代码爱编程

文章目录 1. 前言2. if 表达式(分支结构)2.1. else if 处理多个条件2.2. 在 let 语句中使用 if 表达式 3. 循环结构3.1. loop 重复循环3.1.1. 利用循环提供

jvm详解基础篇之执行引擎(玩转java,游刃有余)_jvm之执行引擎 pdf-爱代码爱编程

文章目录 前言1.两种执行器1.1、解释器(Interpreter)1.2、JIT即时编译器(Just In Time Compiler) 2.热点代码探测技术2.1 栈上替换OSR(On Stack

3.后端学习javascript_javascript后端-爱代码爱编程

配套资料,免费下载 链接:https://pan.baidu.com/s/152NnFqzAUx9br2qb49mstA 提取码:ujyp 复制这段内容后打开百度网盘手机App,操作更方便哦 第一章 JavaScript简

lodash常用函数整理-爱代码爱编程

cloneDeep 深拷贝 返回 一个新的数组 示例 import { cloneDeep } from 'lodash' // 会开辟一个新的堆栈空间 let form = cloneDeep(this.edi