JavaScript基础第二天 运算符,语句

bg.png

一.运算符

1.算术运算符

1.1数学运算符也叫算术运算符,主要包括加、减、乘、除、取余(求模)。

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取模(取余数) 开发中经常作为某个数字是否被整除
    1.2JavaScript中 优先级越高越先被执行,优先级相同时以书从左向右执行。
  • 乘、除、取余优先级相同
  • 加、减优先级相同
  • 乘、除、取余优先级大于加、减
  • 使用 () 可以提升优先级
    总结: 先乘除取余后加减,有括号先算括号里面的

2.赋值运算符

赋值运算符:对变量进行赋值的运算符

  • = :将等号右边的值赋予给左边, 要求左边必须是一个变量
  • += : num += 1 相当于 num = num + 1
  • -= : num -= 1 相当于 num = num - 1
  • *= : num *= 2 相当于 num = num * 2
  • /= : num /= 2 相当于 num = num / 2
  • %= : num %= 2 相当于 num = num % 2

3.一元运算符

3.1n元运算符
判断n: 根据 运算符,需要用到几个表达式 字面量\变量 都是表达式
3.2一元运算符:
自增运算符 ++ 每次加1

  • 前置自增: 先自增,再计算
  • 后置自增: 先计算,再自增
    自减同理 --

4.比较运算符

比较运算符:

  •      >   :   左边是否大于右边
    
  •      <   :    左边是否小于右边
    
  •      >=  :   左边是否大于或等于右边
    
  •      <=  :   左边是否小于或等于右边
    
  •      ==  :   左右两边是否相等,将两边的数据进行转换为数值
    
  •      === : 左右两边是否类型和值都相等
    
  •      !== :  左右两边是否不全等
    
  •      比较结果为boolean类型,即只会得到true或false
    

字符串比较,是比较的字符对应的ASCII码
从左往右依次比较
如果第一位一样再比较第二位,以此类推
比较的少,了解即可

NaN不等于任何值,包括它本身

尽量不要比较小数,因为小数有精度问题
js不适合用来高精度计算
一般计算是后端处理; 非要前端处理;一般是使用工具库

不同类型之间比较会发生隐式转换
最终把数据隐式转换转成number类型再比较
所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==

true 转化为数字为 1 false 转化为数字是 0

= 和 == 和 === 的区别:

  • = 是赋值
  • == 是判断 只要求值相等,不要求数据类型一样即可返回true
  • === 是全等 要求值和数据类型都一样返回的才是true

5.逻辑运算符

5.1逻辑运算符: 与或非

  • 逻辑与: && 符号两边都为true,结果才是true
    一假则假
  • 逻辑或:|| 符号两边有一个为true,结果就是true
    一真则真
  • 逻辑非: ! 取反
    真变假 假变真
    5.2 逻辑运算符的短路
  • && 左边为false就短路
  • || 左边为true就短路
    原因:通过左边能得到整个式子的结果,因此没必要再判断右边
    运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值
 <script>
      // 逻辑运算符的使用技巧: 短路
      // 只会发生在 && || 里面
      //&& 左边为false, 右边就短路
      1 < 2 && console.log(123) //  123
      2 < 2 && console.log(321) // 短路

      console.log('----------------')
      //  || 左边为true,右边就短路
      1 < 2 || console.log(123)  //短路
      2 < 2 || console.log(321)  // 321
      console.log('----------------')
      //短路表达式有返回值
      let res = false && 2
      console.log('res: ', res);  // false

      res = 0 && 1
      console.log('res: ', res);  // 0

      res = true && 2
      console.log('res: ', res);  // 2

      res = false || 2
      console.log('res: ', res);  // 2

      red = 2 || false
      console.log('res: ', res);  // 2

     
    </script>

逻辑上为假的数据类型有:
false null undefined "" 0 NaN
逻辑上为真的数据类型有:
true "字符串里面有值" 数字非0(包括负数) Array Object

6.运算符优先级

1png.png

↓ 小括号 ()
↓ 一元运算符 ++ -- !
↓ 先计算,再比较,再判断相等,再判断逻辑运算符;
↓ 赋值运算符 =
↓ 逗号运算符 ,

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

二.语句

1.表达式和语句

  • 表达式:
    会在原地返回一个值 , 代码较短
  • 语句:
    用来描述一件事情,代码量较多
    区别:
  • 表达式计算出一个值
  • 语句用来描述一件事情

2.分支语句

2.1 程序流程三大控制语句

  • 以前我们写的代码,写几句就从上往下执行几句,这种叫顺序结构
  • 有的时候要根据条件选择执行代码,这种就叫分支结构
  • 某段代码被重复执行,就叫循环结


    2.png

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

  • 单分支使用语法:
if(条件){
    满足条件执行的代码
}

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

  • 双分支语法:
if(条件){
 满足条件执行的代码
}els {
  不满足执行的代码
}
  • 多分支语法
if(条件1){
 满足条件执行的代码 1
}else if(条件2){
   满足条件执行的代码 2
}else if(条件3){
   满足条件执行的代码 3
}else {
  代码n
}

先判断条件1,若满足条件1就执行代码1,其他不执行
若不满足则向下判断条件2,满足条件2执行代码2,其他不执行
若依然不满足继续往下判断,依次类推
若以上条件都不满足,执行else里的代码n
注:可以写N个条件,但这里演示只写2个

2.2.2 三元运算符
语法:


3.png

表达式 ? 表达式为真的时候,执行的语句 : 表达式为假的时候,执行的语句

3.循环语句

3.1 断点调试
作用:学习时可以帮助更好的理解代码运行,工作时可以更快找到bug
使用方法:

  • 浏览器打开调试界面
  • 按F12打开开发者工具
  • 点到sources一栏
  • 选择代码文件
  • 断点:在某句代码上加的标记就叫断点,当程序执行到这句有标记的代码时会暂停下来


    4.png

    3.2 while循环
    语法:

while(循环条件){
 ...循环体(要循环执行的代码)
}

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

当你的才华还撑不起你的野心时,那你就应该静下心来学习。当你的经济还撑不起你的梦想时,那你就应该踏实的去工作!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容