数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。
➢ +:求和
➢ -:求差
➢ *:求积
➢ /:求商
➢ %:取模(取余数) 开发中经常作为某个数字是否被整除
// 1.let声明的变量有块级作用域,在块外面不能使用
// 1.1 块就是指{}
// 1.1:在块中声明的就是的作用域就是整个{}
// 1.2:有效作用域是指在块中,从声明这个变量开始到这个块结构的}结束
// 2.+的作用
// 2.1 如果+两边的内容都是数值,+就是算术运算符
// 2.2 如果+两边有一个是字符串,+就是字符串连接符
1.1 算术运算符的优先级
同时使用多个运算符编写程序时,会按着某种顺序先后执行,我们称为优先级。 JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
➢乘、除、取余优先级相同
➢加、减优先级相同
➢乘、除、取余优先级大于加、减
➢使用 () 可以提升优先级
➢总结: 先乘除后加减,有括号先算括号里面的~~~

算术运算符有那几个常见的?
加+ 减- 乘* 除/ 取余%
算术运算符 优先级怎么记忆?
先乘除取余,后加减,有小括号先算小括号里面的
取余运算符 开发中的使用场景是?
来判断某个数字是否能被整除
赋值运算符:对变量进行赋值的运算符
已经学过的赋值运算符:= 将等号右边的值赋予给左边, 要求左边必须是一个变量
其他赋值运算符:
+= -= *= /= %=
使用这些运算符可以在对变量赋值时进行快速操作
// 我们以 += 赋值运算符来举例
// 1. 以前我们让一个变量加 1 如何做的?
<script>
let num = 1
num = num + 1
console.log(num) //结果是2
</script>
// 2. 现在我们有一个简单的写法啦~~~
<script>
let num = 1
num += 1
console.log(num) //结果是2
</script>
二元运算符:
// 例:
let num = 10 + 20
一元运算符:
例: 正负号
// 问题: 我们以前让一个变量每次+1 ,以前我们做的呢?
let num = 1 let num = 1
num = num + 1 num += 1
我们可以有更简便的写法了
自增:
➢ ** ** 符号:++
➢ ** ** 作用:让变量的值 +1
自减:
➢ ** ** 符号:--
➢ ** ** 作用:让变量的值 -1
使用场景:
经常用于计数来使用。 比如进行10次操作,用它来计算进行了多少次了
自增运算符的用法:
前置自增:(先用)

后置自增:(后用)

拓展 : 前置自增和后置自增单独使用没有区别

只需要一个表达式就可以运算的运算符叫一元运算符
自增运算符也是为了简化写法,每次自加1,使用场景是什么?
经常用于计数来使用。用来计算多少次
前后置自增的区别
前置:先自增后运算
后置:先运算后自增
自减同理.. 并且 开发中,我们一般都是单独使用的,后置++ 使用更多
比较运算符的使用
比较运算符:
➢ ** ** > : 左边是否大于右边
➢ ** ** <: 左边是否小于右边
➢ ** ** >=: 左边是否大于或等于右边
➢ ** ** <=: 左边是否小于或等于右边
➢ ** ** ==: 左右两边是否相等,将两边的数据进行转换为数值
➢ ** ** ===: 左右两边是否类型和值都相等
➢ ** ** !==: 左右两边是否不全等
➢ ** ** 比较结果为boolean类型,即只会得到true或false
比较运算符的细节

字符串比较,是比较的字符对应的ASCII码
➢ ** ** 从左往右依次比较
➢ ** ** 如果第一位一样再比较第二位,以此类推
➢ ** ** 比较的少,了解即可
NaN不等于任何值,包括它本身
尽量不要比较小数,因为小数有精度问题
不同类型之间比较会发生隐式转换
➢ ** ** 最终把数据隐式转换转成number类型再比较
➢ ** ** 所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==
= 和 == 和 === 怎么区别?
➢ = 是赋值
➢ == 是判断 只要求值相等,不要求数据类型一样即可返回true
➢ === 是全等 要求值和数据类型都一样返回的才是true
➢ 开发中,请使用 ===
比较运算符返回的结果是什么?
➢ 结果只有2个, true 或者 false
逻辑运算符的介绍
提问:如果我想判断一个数据大于5且小于10,怎么办?
错误写法: 5 < 数据 < 10
逻辑运算符用来解决多重条件判断
逻辑运算符的使用
逻辑运算符:

逻辑运算符里的短路
短路:只存在于 && 和 || 中,当满足一定条件会让右边代码不执行
&& 左边为false就短路
| | 左边为true就短路
原因:通过左边能得到整个式子的结果,因此没必要再判断右边
运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值

逻辑运算符有那三个?
与 ( && ) 或 ( || ) 非 ( ! )
逻辑运算符短路运算符怎么执行的?
只存在于 && 和 || 中,当满足一定条件会让右边代码不执行


一元运算符里面的逻辑非优先级最高
逻辑与比逻辑或优先级高

语句:
js 整句或命令,用来描述一件事情,代码量比较长
比如:if语句 for 循环语句
区别:表达式计算出一个值,但语句用来自行以使某件事发生(做什么事)
➢ 表达式 3 + 4
➢ 语句 alert() 弹出对话框
➢其实某些情况,也可以把表达式理解为语句,因为它是在计算结果,也是做事
表达式和语句的区别
表达式计算出一个值 比如 3+5 x = 7
语句用来自行以使某件事发生(做什么事)
➢ alert()
➢ console.log()
➢ 还比如我们接下来学的分支语句..
程序三大流程控制语句
以前我们写的代码,写几句就从上往下执行几句,这种叫顺序结构
有的时候要根据条件选择执行代码,这种就叫分支结构
某段代码被重复执行,就叫循环结构

分支语句可以让我们有选择性的执行想要的代码
分支语句包含:
If分支语句
三元运算符
if语句
if语句有三种使用:单分支、双分支、多分支
单分支使用语法:

括号内的条件为true时,进入大括号里执行代码
小括号内的结果若不是布尔类型时,会发生隐式转换转为布尔类型
双分支if语法:

多分支if语法:

先判断条件1,若满足条件1就执行代码1,其他不执行
若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
若依然不满足继续往下判断,依次类推
若以上条件都不满足,执行else里的代码n
注:可以写N个条件,但这里演示只写2个
三元运算符
其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
符号:? 与 : 配合使用
// 语法
条件 ? 满足条件执行的代码 : 满足条件执行的代码
// 一般用来取值
学习路径: 断点调试 while循环
断点调试
语法 : debugger
作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
浏览器打开调试界面
断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来

<meta name="wolai" content="bXkzmveDTKbjN72aCVbgoj1651912880672">
while 循环
循环:重复执行某段代码, 而 while : 在…. 期间
1.while 循环语法:

跟if语句很像,都要满足小括号里的条件为true才会进入执行代码
while大括号里代码执行完毕后不会跳出,而是继续回到小括号里判断条件是否满足,若满足又执行大括号里的代码,然后再回到小括号判断条件,直到括号内条件不满足,即跳出

##### 3.1 while 循环小案例分析
需求:使用while循环,页面中打印,可以添加换行效果
1. 页面输出1-100
核心思路: 利用 i ,因为正好和 数字对应
2. 计算从1加到100的总和并输出
核心思路:
声明累加和的变量 sum
每次把 i 加到 sum 里面
3. 计算1-100之间的所有偶数和
核心思路:
声明累加和的变量 sum
首先利用if语句把 i 里面是偶数筛选出来
把 筛选的 i 加到 sum 里面
最近工作忙碌,更新时间不稳定,感谢各位friend的支持!!!
请帮助我理解范围运算符...和..之间的区别,作为Ruby中使用的“触发器”。这是PragmaticProgrammersguidetoRuby中的一个示例:a=(11..20).collect{|i|(i%4==0)..(i%3==0)?i:nil}返回:[nil,12,nil,nil,nil,16,17,18,nil,20]还有:a=(11..20).collect{|i|(i%4==0)...(i%3==0)?i:nil}返回:[nil,12,13,14,15,16,17,18,nil,20] 最佳答案 触发器(又名f/f)是
我注意到类定义,如果我打开classMyClass,并在不覆盖的情况下添加一些东西我仍然得到了之前定义的原始方法。添加的新语句扩充了现有语句。但是对于方法定义,我仍然想要与类定义相同的行为,但是当我打开defmy_method时似乎,def中的现有语句和end被覆盖了,我需要重写一遍。那么有什么方法可以使方法定义的行为与定义相同,类似于super,但不一定是子类? 最佳答案 我想您正在寻找alias_method:classAalias_method:old_func,:funcdeffuncold_func#similartoca
//1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json
1.在Python3中,下列关于数学运算结果正确的是:(B)a=10b=3print(a//b)print(a%b)print(a/b)A.3,3,3.3333...B.3,1,3.3333...C.3.3333...,3.3333...,3D.3.3333...,1,3.3333...解析: 在Python中,//表示地板除(向下取整),%表示取余,/表示除(Python2向下取整返回3)2.如下程序Python2会打印多少个数:(D)k=1000whilek>1: print(k)k=k/2A.1000 B.10C.11D.9解析: 按照题意每次循环K/2,直到K值小于等
在添加一些空格以使代码更具可读性时(与上面的代码对齐),我遇到了这个:classCdefx42endendm=C.new现在这将给出“错误数量的参数”:m.x*m.x这将给出“语法错误,意外的tSTAR,期待$end”:2/m.x*m.x这里的解析器到底发生了什么?我使用Ruby1.9.2和2.1.5进行了测试。 最佳答案 *用于运算符(42*42)和参数解包(myfun*[42,42])。当你这样做时:m.x*m.x2/m.x*m.xRuby将此解释为参数解包,而不是*运算符(即乘法)。如果您不熟悉它,参数解包(有时也称为“spl
我明白了:x,(y,z)=1,*[2,3]x#=>1y#=>2z#=>nil我想知道为什么z的值为nil。 最佳答案 x,(y,z)=1,*[2,3]右侧的splat*是内联扩展的,所以它等同于:x,(y,z)=1,2,3左边带括号的列表被视为嵌套赋值,所以它等价于:x=1y,z=23被丢弃,而z被分配给nil。 关于ruby-带括号和splat运算符的并行赋值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow
我想从then子句中访问case语句表达式,即food="cheese"casefoodwhen"dip"then"carrotsticks"when"cheese"then"#{expr}crackers"else"mayo"end在这种情况下,expr是食物的当前值(value)。在这种情况下,我知道,我可以简单地访问变量food,但是在某些情况下,该值可能无法再访问(array.shift等)。除了将expr移出到局部变量然后访问它之外,是否有直接访问caseexpr值的方法?罗亚附注我知道这个具体示例很简单,只是一个示例场景。 最佳答案
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
如何在Ruby的if语句中检查bash命令的返回值(true/false)。我想要这样的东西,if("/usr/bin/fswscell>/dev/null2>&1")has_afs="true"elsehas_afs="false"end它会提示以下错误含义,它总是返回true。(irb):5:warning:stringliteralincondition正确的语法是什么?更新:/usr/bin/fswscell寻找afs安装和运行状态。它会抛出这样的字符串,Thisworkstationbelongstocell如果afs没有运行,命令以状态1退出 最
我最近与一位同事讨论了以下Ruby语法:value=ifa==0"foo"elsifa>42"bar"else"fizz"end我个人并没有看到太多这种逻辑,但我的同事指出,这实际上是一种相当普遍的Rubyism。我试着用谷歌搜索这个主题,但没有找到任何文章、页面或SO问题来讨论它,这让我相信这可能是一种非常实际的技术。然而,另一位同事发现语法令人困惑,而是将上面的逻辑写成这样:ifa==0value="foo"elsifa>42value="bar"elsevalue="fizz"end缺点是value=的重复声明和隐式elsenil的丢失,如果我们想使用它的话。这也感觉它与Ruby