day2-JS基础&流程控制
typora-root-url: img
自增自减运算符
1、基本使用
内置提供 ++、--运算符 是用于将变量本身进行加1或者减1操作
// 1、基本使用
var i = 10;
i++;//等价于语句 i+=1
console.log(i);//11
var m = 10;
m--;
console.log(m)
2、前置与后置的区别
// 2、前置与后置的区别
// 可以将++、--运算符号 设置到变量的前面或者后面 ++i i++
// 前置与后置的区别:不管前置还是后置永远会将值进行加1或者减1操作 区别当遇到赋值或者输出语句时 ++在就先将变量本身加1 然后在参与其他的运算 ++在后 先将变量参与其他运算之后 最后加1
var j = 10;
// var res = j++;
//
var res = ++j
console.log(res,j)
3、练习题
var k = 0;
// 计算结果需要使用k++的值 加上 ++k的值 加上k的值 加上 k++的值
/*
var a = k++; a=0 k=1
var b = ++k; b=2 k=2
var c = k; c=2 k=2
var d = k++; d=2 k=3
var res2 = a + b + c + d
*/
var res2 = k++ + ++k +k +k++;
console.log(res2);
数据类型转换
强制转换
转换数值类型
1、Number
// 1、Number 语法Number(需要转换的内容)
console.log(Number("100"));//100
console.log(Number("100元"));//NaN
console.log(Number("人民币100"));//NaN
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(undefined));//NaN
console.log(Number(null));//0
// Number在转换字符串时 只有字符串中所有的都是数字才可以转换为数字否则得到的都是NaN
2、parseInt
// 2、parseInt
console.log(parseInt("100"));//100
console.log(parseInt("100元"));//100
console.log(parseInt("人民币100"));//NaN
console.log(parseInt(true));//NaN
console.log(parseInt(false));//NaN
console.log(parseInt(undefined));//NaN
console.log(parseInt(null));//NaN
// parseInt主要是针对字符串 非字符串都是NaN 转换字符串为数字的规则 从第一个字符开始提取数字 如果是数字就保留 只要遇到一个非数字就结束,如果结束的时候没有提取到任何数字 最终结果就是NaN
3、parseFloat
// 3、parseFloat
console.log('-------------------------------------------')
console.log(parseFloat("100.00"));//100
console.log(parseFloat("100.01元"));//100
console.log(parseFloat("人民币100.1"));//NaN
转换字符串类型
// 1、toString 语法待转数据变量.toString()
var num = 10;
console.log(num.toString());
// 布尔转换字符串
console.log(true.toString())
console.log(false.toString())
// undefined
// TypeError: Cannot read properties of undefined (reading 'toString') 不能使用undefined读取toString这个属性 以后见到了类似的错误直接下结论 调用的变量值肯定是错误的
// console.log(undefined.toString());
// console.log(null.toString());
// 2、String String(待转换的数据)
console.log(String(10))
console.log(String(undefined))
转换布尔类型
// Boolean
console.log(Boolean(0))
// 在js中只有五种可以转换为布尔值的false 其他的全部都是true
// 分别是空字符串、数字0 undefined、null、NaN
console.log(Boolean(" "));//true 空字符串是只有引号 如果字符串中有空格都算内容
console.log(Boolean(""));
console.log(Boolean(undefined));
console.log(Boolean(null))
console.log(Boolean(NaN));
console.log(Boolean("0"))
隐式转换
/*
隐式转换 是借助于语言中运算符或者语句 自动将不满足的数据类型转换为需要的数据类型
例如 使用 - 表示进行减法运算
*/
var str = "1000";
// 因为减法运算需要两边都是数字 所以 自动的将str变成数字在进行计算
console.log(str - 10);
// 在自动转换的过程中原始变量不会修改
console.log(typeof str);
console.log(str);
// 例如后面的流程控制 很多需要使用布尔值 如果你给的不是布尔值 就会自动转换
流程控制
代码的执行顺序
代码执行的顺序 默认按照从上向下顺序执行
涉及到赋值语句 先执行右边 在执行左边 单独看某一个表达式 从左向右顺序执行
无法实现代码的跳跃式执行
if语句
1、语法
如果表达式为真就执行大括号中的代码块 整个if语句结束 如果第一个表达式为假 会继续检查下一个elseif中的表达式是否为真,如果所有的表达式都为假 存在else语句的情况下 就执行else中的代码块
在if语句中else if与else并非必须
if(表达式){
代码块
}else if(表达式2){
代码块
}
...
else{
代码块
}
2、使用示例
// var has = true;
// console.log('买10个包子')
// if(has){
// console.log('买一个西瓜')
// }
var has = true;
// 在所有的表达式中 最终一定要得到一个布尔值 如果给的不是布尔值系统都会自动的转换为布尔值
var num = 0;
if (has) {
console.log('买一个西瓜')
} else {
console.log('买10个包子')
}
var day = prompt('输入数字0-6表示星期几');
if (day == 0) {
console.log('摸鱼')
} else if (day == 1) {
console.log('摸鱼')
} else if (day == 2) {
console.log('发开代码')
} else if (day == 3) {
console.log('提交测试')
} else if (day == 4) {
console.log('修改bug 发布上线')
} else if (day == 5) {
console.log('加班修复线上bug')
} else {
console.log('休息睡觉')
}
switch语句
1、语法
//表达式会计算出一个值(不会自动转换为布尔值)
switch(表达式){
case 值1:
代码块
break;
case 值2:
代码块
break;
...
default:
代码
break;
}
//在使用Switch语句的时候 表达式的值与每一个case的值是进行的全等比较
2、基本使用
var day = prompt("输入星期几")
switch (day - 0) {
case 0:
console.log('摸鱼')
break;
case 1:
console.log('划水')
break;
case 2:
console.log('写代码');
break;
case 3:
console.log('提交测试');
break;
case 4:
console.log('发布上线');
break;
case 5:
console.log('加班修改bug');
break;
case 6:
console.log('休息 不可能');
break;
default:
console.log('今天星期几');
break;
}
3、穿透
day = 2;
switch (day) {
case 0:
case 1:
case 2:
case 3:
case 4:
console.log('写代码');
break;
case 5:
case 6:
console.log('休息')
break;
}
三元
1、语法
表达式1?表达式2:表达式3
三元的语法 可以用于简化if...else...语句
表达式1为真就执行表达式2否则就执行表达式3
2、使用示例
// 基本使用
var num = 20;
num == 20 ? console.log('num 等于20') : console.log('num不等于20')
if (num == 20) {
console.log('num 等于20')
} else {
console.log('num不等于20')
}
// 使用三元实现赋值功能
// 在设置个人资料的场景中性别 使用者看到的是 男 女 实际交互时使用的是1 2 这样的数字表示
var inputSex = '男'
// 根据表达式的布尔值 决定是将1这个值还是2这个值赋值给sex变量
var sex = (inputSex == '男') ? 1 : 2
console.log(sex)
循环语句
循环四要素
循环是为了重复的去实现一件事情或者一件有规律的事情
1、做什么
2、计数器初始化
3、变更计数器
4、计数器作为条件的判断 控制循环的次数
for语句
1、语法
for(计数器初始化;循环条件;计数器变更){
//循环体代码
}
2、for示例
for (var i = 1; i <= 5; i++) {
console.log('跑第一圈400m')
}
3、执行过程
1、执行步骤1进行初始化计数器功能
2、执行步骤2 判断条件是否满足
如果条件为假 整个循环结束
如果条件为真 执行步骤四,执行完毕之后在执行步骤三 再次执行步骤条件判断 根据条件判断的结果进行重复
4、断点追踪for循环的执行过程
day2-JS基础&流程控制的更多相关文章
- 小白学 Python(8):基础流程控制(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- js 异步流程控制之 avQ(avril.queue)
废话前言 写了多年的js,遇到过最蛋疼的事情莫过于callback hell, 相信大家也感同身受. 业界许多大大也为此提出了很多不错的解决方案,我所了解的主要有: 朴灵 event proxy, 简 ...
- JavaScript基础-流程控制-if
流程控制基本概念 默认情况下,程序的运行流程是这样的:运行程序后,系统会按书写从上至下顺序执行程序中的每一行代码,但是这并不能满足我们所有的开发需求 1.png 实际开发中, 我们需要根据不同的条件执 ...
- python全栈开发-Day2 布尔、流程控制、循环
python全栈开发-Day2 布尔 流程控制 循环 一.布尔 1.概述 #布尔值,一个True一个False #计算机俗称电脑,即我们编写程序让计算机运行时,应该是让计算机无限接近人脑,或者说人 ...
- Node.js中流程控制
Node.js中的流程控制可以使用async,在使用之前需要先安装,使用npm安装 npm install async --g 下面主要介绍4种流程控制的方式: 1.串行无关联:async.serie ...
- js基础练习--控制多组图片切换
js基础练习题,一个按钮控制两组图片的切换,做这题的时候我忽然想到了将num1.mun2……都存放在一个数组中,根据索引值匹配到对应相应组的图片,这样不管有多少组图片都简单的搞定切换,可惜js基础都没 ...
- 黑马程序员——C语言基础 流程控制 选择结构和循环结构
---恢复内容开始--- Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)流程控制 1> 顺序结构:默认的流程 ...
- Java基础-流程控制(04)
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的.也就是说程序的流程对运行结果有直接的影响.所以,我们必须清楚每条语句的执行流程.而且,很多时候我们要通过控制语句的执行顺序来实现我 ...
- python基础-->流程控制-->分支结构-->单项分支-->双向分支
# ###流程控制 ''' 流程:代码执行过程 流程控制:对代码执行过程的管控 顺序结构:代码默认从上到下依次执行 分支结构:对代码执行过程的管控 循环机构: while for ..in.... 分 ...
随机推荐
- 记录一次解决数据库连接池连接泄露BUG
1 BUG现象 系统并发请求,系统停滞无法使用,所有接口都是无法与后端进行交互的状态,系统并没有宕机 2 BUG的业务流程 插入分数方法 涉及插入表ABCD 加了声明式事务 查询分数方法 涉及表ABC ...
- API接口设计规范
说明:在实际的业务中,难免会跟第三方系统进行数据的交互与传递,那么如何保证数据在传输过程中的安全呢(防窃取)?除了https的协议之外,能不能加上通用的一套算法以及规范来保证传输的安全性呢? 下面我们 ...
- 按关键字API接口搜索天眼查企业数据
一.如果你想要查找某一个企业的基本信息或是对行业中的企业进行筛选,那么使用API接口搜索天眼查企业数据会非常方便. 首先,你需要获取天眼查API的access_token,这可以通过注册账号获取.一旦 ...
- shopee商品详情接口的应用
Shopee是东南亚和台湾地区最大的电子商务平台之一,成立于2015年,目前覆盖6个国家和地区.作为一家新兴电商平台,Shopee拥有快速增长的销售额和庞大的用户群体,为开发者提供了丰富的商业机会.其 ...
- C#/.NET/.NET Core优秀项目和框架8月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(公众号每周至少推荐两个优秀的项目和框架当然节假日除外),公众号推文有项目和框架的介绍.功能特点以及部分截图等(打不开或 ...
- Git命令详细使用指南
Git命令详细使用指南 Git是一种广泛使用的版本控制系统,它可以帮助开发人员跟踪变更.协作项目和有效管理代码仓库.无论你是初学者还是有经验的用户,理解各种Git命令对于高效的代码管理至关重要. 安装 ...
- Z-Blog火车头免登录发布教程+插件3.2+支持最新Z-Blog1.7
Z-Blog免登录采集评论,之前没有加入评论接口,今天把评论接口写好了,写一下简单的教程,(采集评论规则是一件很麻烦的事)有时候采集文章的时候也采集评论,今天教大家怎样用我的Z-Blog免登录采集插件 ...
- 「codeforces - 1208F」Bits and Pieces
link. 考虑把原问题写成一个在 \(\left(\log_2 \max v \right) \times n\) 的矩阵里选出三列,我们首先预处理出 \(j \cap q\).具体,我们需要对于每 ...
- Centos7中防火墙打开3306端口(亲测)
开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent 开启防火墙 systemctl start firewa ...
- 使用 Helm 管理应用的一些 Tips
背景 Helm 是一个 Kubernetes 的包管理工具,有点类似于 Mac 上的 brew,Python 中的 PIP:可以很方便的帮我们直接在 kubernetes 中安装某个应用. 比如我们可 ...