JavaScript 运算,流程控制和循环
算数运算符
- 算术运算符
|
描叙 |
运算符 |
实例 |
|
加 |
+ |
10 + 20 = 30 |
|
减 |
- |
10 – 20 = -10 |
|
乘 |
* |
10 * 20 = 600 |
|
除 |
/ |
10 / 20 = 0.5 |
|
取余数 |
% |
返回除法的余数9%2=1 |
- 浮点数精确度
浮点数值的最高精度是 17 位小数
console.log(0.07 * 100); // 7.000000000000001
console.log(0.1 + 0.2); // 0.30000000000000004
递增和递减运算符
- 递增运算符
- 前置递增
++num 前置递增,就是自加1,类似于 num = num + 1,但是 ++num 写起来更简单 var num = 1;
console.log(++num); // 2 使用口诀:先自加,后返回值
2. 后置递增
num++ 后置递增,就是自加1,类似于 num = num + 1 ,但是 num++ 写起来更简单 var num = 1;
console.log(10 + num++); // 10 + 10 + 1 使用口诀:先返回原值,后自加
比较运算符
- 比较运算符号
两个数据进行比较,返回一个布尔值
|
运算符名称 |
说明 |
案例 |
结果 |
|
< |
小于号 |
1 < 2 |
true |
|
> |
大于号 |
1 > 2 |
false |
|
>= |
大于等于号 |
1 >= 2 |
false |
|
<= |
小于等于号 |
1 <= 2 |
false |
|
!= |
不等于 |
1 != 2 |
true |
|
== |
判等于(会转型) |
1 == 1 |
true |
|
=== !== |
全等于,要求值数据类型一致 |
‘37’ === 37 |
false |
- 等号运算符
|
符号 |
作用 |
用法 |
|
= |
赋值 |
把右边给左边 |
|
== |
判断 |
判断两边是否相等(隐式转换) |
|
=== |
全等 |
判断两边值和类型是否相等 |
console.log('19' == 19); // true
console.log('19' === 19); // false
逻辑运算符
- 逻辑运算符概念
逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值
|
逻辑运算符 |
说明 |
案例 |
|
&& |
“逻辑与” and |
ture && false |
|
|| |
“逻辑或” or |
ture || false |
|
! |
“逻辑非” not |
!true |
- 逻辑与 &&
两边都是 true才返回 true,否则返回 false
- 逻辑或 ||
一边是 true返回 true,否则返回 false
- 逻辑非 !
逻辑非(!)也叫作取反符,用来取一个布尔值相反的值,如 true 的相反值是 false
var num = !true;
console.log(num); // false
- 短路运算(逻辑中断)
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值;
- 逻辑与
语法: 表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式2
如果第一个表达式的值为假,则返回表达式1 console.log(11 && 22); // 11
console.log(0 && 2); // 0
2. 逻辑或
语法: 表达式1 || 表达式2
如果第一个表达式的值为真,则返回表达式1
如果第一个表达式的值为假,则返回表达式2
console.log( 123 || 456 ); // 123
console.log( 0 || 456 ); // 456
赋值运算符
|
赋值运算符 |
说明 |
案例 |
|
= |
直接赋值 |
var name=’1’ |
|
+=,-= |
加,减一个值,再赋值 |
var age=1;age+=2 //3 |
|
*=,/=,%= |
乘,除,取余后在赋值 |
var age=1;age*=1 //10 |
var num = 2;
console.log(num += 1); // 3
console.log(num -= 1); // 2
console.log(num *= 1); // 2
优先级运算符

流程控制
- if 语句
// 条件成立执行代码,否则什么也不做
if (条件表达式) {
// 条件成立执行的代码语句
}
- if else 语句
// 条件成立 执行 if 里面代码,否则执行else 里面的代码
if (条件表达式) {
// [如果] 条件成立执行的代码
} else {
// [否则] 执行的代码
}
- if else if 语句
// 适合于检查多重条件。
if (条件表达式1) {
语句1;
} else if (条件表达式2) {
语句2;
} else if (条件表达式3) {
语句3;
....
} else {
// 上述条件都不成立执行此处代码
}
三元表达式
- 语法结构
表达式1 ? 表达式2 : 表达式3;
- 执行思路
如果表达式1为 true ,则返回表达式2的值,如果表达式1为 false,则返回表达式3的值
简单理解: 就类似于 if else (双分支) 的简写
console.log((1 == true)? true: false); // true
switch分支流程控制
- 语法结构
switch( 表达式 ){
case value1:
// 表达式 等于 value1 时要执行的代码
break;
case value2:
// 表达式 等于 value2 时要执行的代码
break;
default:
// 表达式 不等于任何一个 value 时要执行的代码
}
- switch :开关 转换 , case :小例子 选项
- 关键字 switch 后面括号内可以是表达式或值, 通常是一个变量
- 关键字 case , 后跟一个选项的表达式或值,后面跟一个冒号
- switch 表达式的值会与结构中的 case 的值做比较
- 如果存在匹配全等(===) ,则与该 case 关联的代码块会被执行,并在遇到 break 时停止,整个 switch 语句代码执行结束
- 如果所有的 case 的值都和表达式的值不匹配,则执行 default 里的代码
执行case 里面的语句时,如果没有break,则继续执行下一个case里面的语句。
switch (name = 'peach3') {
case 'peach':
console.log('peach');
break;
case 'peach2':
console.log('peach2');
break;
default:
console.log('default');
} // default
循环
for 循环
- 语法结构
for(初始化变量; 条件表达式; 操作表达式 ){
//循环体
}
num = 0;
for (var i=1; i < 100; i++){
num += i
}
console.log(num); // 4950
双重 for 循环
- 语法
for (外循环的初始; 外循环的条件; 外循环的操作表达式) {
for (内循环的初始; 内循环的条件; 内循环的操作表达式) {
需执行的代码;
}
}
var start = '';
for (var j=1; j <=3; j++) {
for (var i=1; i <=3; i++) {
start += '☆'
}
start += '\n'
} console.log(start);
☆☆☆
☆☆☆
☆☆☆
while 循环
- 语法
while (条件表达式) {
// 循环体代码
}
var i = 0;
while (i < 5) {
if (i === 3) {
console.log(i);
break
}
i ++
} // 3
do – while 循环
do {
// 循环体代码 - 条件表达式为 true 时重复执行循环体代码
} while(条件表达式);
- 先执行一次循环体(do)代码
- 再执行条件表达式,如果结果为 true,则继续执行循环体代码,如果为 false,则退出循环,继续执行后面代码
- 先再执行循环体,再判断,do…while循环语句至少会执行一次循环体代码
var i =0;
do {
console.log("do 数字为" + i);
i ++;
} while ( i < 2){
console.log(i);
}
JavaScript 运算,流程控制和循环的更多相关文章
- python全栈 流程控制;while 循环 格式化输出 运算符 及编码
python全栈开发 1循环 2break和continue的区别 3格式化输出 4运算符 5编码 一.流程控制while循环 while条件: 代码块(循环体) 1.死循环; while True; ...
- PHP丨PHP基础知识之流程控制WHILE循环「理论篇」
昨天讲完FOR循环今天来讲讲他的兄弟WHILE循环!进入正题: while是计算机的一种基本循环模式.当满足条件时进入循环,进入循环后,当条件不满足时,跳出循环.while语句的一般表达式为:whil ...
- 051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试——debug入门1
051 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 13 Eclipse下程序调试--debug入门1 本文知识点: 程序调试--debug入门1 程序 ...
- 048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例——阶乘的累加和
048 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 10 案例--阶乘的累加和 本文知识点:通过案例练习嵌套循环应用 案例练习--阶乘的累加和 案例题目 ...
- python流程控制for循环
流程控制 for循环 #首先我们用一例子看下用while循环取出列表中值的方法 l=['a','b','c'] i=0 while i<len(l): print(l[i]) i+=1 #whi ...
- Python之流程控制——while循环
Python之流程控制--while循环 一.语法 while 条件: 执行代码 while就是当的意思,它指当其后面的条件成立,就执行while下面的代码. 例:写一个从0打印到10的程序 coun ...
- ansible-playbook流程控制-loops循环使用
1. ansible-playbook流程控制-loops循环使用 有时你想要多次重复任务.在计算机编程中,这称为循环.common ansible循环包括使用文件模块更改多个文件和/或目录的所 ...
- JavaScript的流程控制
JavaScript的流程控制 1.if...else if...else... 2.while 3.for 4.forEach 5.for...in... 完整代码如下: <!DOCTYPE ...
- 053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结
053 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 15 流程控制知识总结 本文知识点: 流程控制知识总结 流程控制知识总结 选择结构语句 循环结构语句 ...
- 052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试——debug2 多断点调试程序
052 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 14 Eclipse下程序调试--debug2 多断点调试程序 本文知识点: Eclipse下程序调 ...
随机推荐
- Pikachu-Sql Inject(SQL注入)
在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库注入漏洞.一个严重的SQL注入漏洞,可能会直接导致一家公司破产!SQL注入漏洞主要形成的原因 ...
- Miller-Rabin素数检测算法 acm模板
Miller-Rabin素数检测算法 其基于以下两个定理. Fermat小定理 若n是素数,则∀a(a̸≡0(modn))\forall a(a \not\equiv 0 \pmod{n})∀a(a̸ ...
- 第31届IMO 第2题
题目 设n>=3,考虑一个圆上由2n-1个不同点构成的集合E.现给E中恰好k个点染上黑色,如果至少有一对黑点使得这两个黑点之间的弧上(两段弧中的某一个)包含恰好E中的n个点,就成这样的染色方法是 ...
- 页面置换算法——最近最久未使用算法(c语言实现)
操作系统实验:用C语言编程实现最近最久未使用置换算法(LRU) 最近最久未使用置换算法(LRU),全称Least Recently Used,是一种页面置换算法. 对于在内存中但又不用的数据块(内存块 ...
- SGDClassifier梯度下降分类方法
SGDClassifier梯度下降分类方法 这个分类器跟其他线性分类器差不多,只是它用的是mini-batch来做梯度下降,在处理大数据的情况下收敛更快 1.应用 SGD主要应用在大规模稀疏数据问题上 ...
- 谈一谈php反序列化
1.序列化与反序列化 php中有两个函数serialize()和unserialize() 序列化serialize(): 当在php中创建了一个对象后,可以通过serialize()把这个对象转变成 ...
- redis中获取没有设置ttl过期时间的key
需求:redis作为一个内存型的数据库,我们需要对过期key保持关注,从info keyspace中可以看出有多少key没有设置过期时间,那么到底是哪些呢? 说明:关于redis ttl 的返回值,请 ...
- 一直报找不到function,然后又不为null。最后发现是个数组。哭死。
今天写代码,报找不到function.然后又不为空.最后发现是类型不对.因为是数组,所以不能用node.function(),而应该用nodeArr[0].function.错用前者会找不到funct ...
- 软件架构期末复习(Struts2+Spring+Hibernate)
Struts2+Spring+Hibernate The Model-ViewController pattern in Struts2 is implemented with the followi ...
- 我的python笔记06
面向对象学习 本节内容: 面向对象编程介绍 为什么要用面向对象进行开发? 面向对象的特性:封装.继承.多态 类.方法. 引子 你现在是一家游戏公司的开发人员,现在需要你开发一款叫做< ...