学习笔记整理-JS-03-表达式和运算符

[[toc]]

一、表达式和运算符

1. 表达式

expression.png

  • 表达式种类
    • 算术、关系、逻辑、赋值、综合

二、JS基本表达式

1. 算术运算符

意义运算符
+
-
*
/
取余%
  • 加减乘除

    • 加减的符号和数学一致,乘号是*号,除法是/
    • 默认情况,乘除法的优先级高于加法和减法;必要时可以使用圆括号来改变运算的顺序。
  • 加号的两种作用

    • 加号有"加法"和"连字符"两种作用
    • 如果加号两边的操作数都是数字,则为"加法",否则为连字符。
  • 取余运算

    • 取余运算也叫作“求模运算”,用百分号%表示
    • a%b表示求a除以b的余数,它不关心整数部分,只关心余数
          11 % 4;   //3, 因为11除以4余数是320 % 6;   //2, 因为20除以6余数是212 % 3;   //O, 因为能够整除,余数是03 % 9;    //3, 因为商0,余数是3  
      
  • 隐式类型转换

    • 如果参与数学运算的某操作数不是数字型,那么JavaScript会自动将此操作数转换为数字型
        3 * '4' // 12
      
    • 隐式转换的本质是内部调用Number()函数
      Number(true)// ---> 1  true + true // 2
      Number(false)//---> 0  false + 2   // 2
      3 * '2天'                          // NaN    
      
  • 有关IEEE754

    • JavaScript中,有些小数的数学运算不是很精准
      0.1 + 0.2 // 0.30000000000000004
      
    • JavaScript使用了IEEE754二进制浮点数算术标准,这会使一些个别的小数运算产生丢失精度问题
      • 解决办法:在进行小数运算时,要调用数字的toFixed()方法保留指定的小数位数
  • 幂和开根号

    • JavaScript中没有提供幂计算、开根号的运算符。需要使用Math对象的相关方法进行计算。
        Math.pow(2,3)  // 8  Math.pow(3,2)  // 9Math.sqrt(81)  // 9Math.sqrt(-81) // NaN
      
  • 向上取整和向下取整

    • Math.ceil()向上取整;Math.floor()向下取整
          Math.ceil(2.4)   // 3Math.floor(2.4)  // 2   Math.ceil(-2.4)   // -2Math.floor(-2.4)  // -3     Math.ceil(2)   // 2Math.floor(2)  // 2     
      

2. 关系运算符

意义运算符
大于>
小于<
大于或等于>=
小于或等于<=
等于=
不等于!=
全等于===
不全等于!==
  • 大于和小于

    • 大于>、小于<两个符号和数学相同
  • "大于等于"运算符是>=,"小于等于"运算符是<=

  • 判断是否相等

    • 如果想比较两个值是否相等,此时应该使用==运算符
    • JavaScript中等号=表示赋值,而并不是相等,判断相等应该使用==运算符。
    • 相等和全等
      • 两个等号==运算符不比较值的类型,它会进行隐式转换后比较值是否相等
      • 三个等号===运算符,不仅比较值是否相同,也比较类型是否相同
          1 == true   // true1 === true  // false0 == false  // true0 === false // false0 == undefined // false0 === undefined // falseundefined == null // trueundefined === null // false
        
      • nullundefined==进行比较涉及隐式强制类型转换,ES5规范中规定:
        • 如果xnull,yundefined,则结果为true
        • 如果xundefined,ynull,则结果为true
      • nullundefined===比较时结果为false是因为类型不同:
        • typeof null --> object
        • typeof undefined --> undefined
      • NaN不自等
        • NaN作为一个特殊的数字类型值,它在用==比较的时候也有特殊的结果
              NaN == NaN  // falseNaN === NaN // false
          
      • 如何判断某变量值为NaN
        • isNaN()函数可以用来判断变量值是否为NaN
              isNaN(NaN)  // trueisNaN(5)    // false
          
        • isNaN()也不好用,它的机理是:只要该变量传入Number()的执行结果是NaN,则isNaN()函数都会得到true
            isNaN(undefined)  // trueisNaN('3天')      // trueisNaN(null)       // false
          
      • 不相等和不全等
        • !=表示不相等
        • !==表示不全等
         5 != 6   // true5 !== 6  // true5 != '5'   // false5 !== '5'  // true
        
      • js中没有连比,绝对不可能存在3 <= a <= 15

3. 逻辑运算符

非:! 与:&& 或:||

  • !表示"非",也可以称为"置反运算"
  • !是一个"单目运算符",只需要一个操作数
  • 置反运算的结果一定是布尔值
      !true         // false!false        // true    !0            // true    !undefined    // true!''           // true!'zhangsan'   // false!!true        // true!!0           // false!!''          // false!!'zhangsan'  // true                
    

4. 与运算符

  • &&表示"并且",称为"与运算",全真才为真
  • 短路原则
    • a && b 运算中:a真,表达式值为b,a假,表达式值为a
        3 && 6           // 6undefined && 15  // undefined15 && undefined  // undefinednull && 2        // null'' && 16         // ''NaN && undefined // NaN  
      

5. 或运算符

  • ||表示"或者",称为"或运算",有真就真
  • a || b运算中:a真,表达式值为a, a假,表达式值为b
      3 || 6          // 30 || 6          // 6null || undefined // undefined'a' || 'b'      // 'a'NaN || null     // null
    
  • 逻辑值运算
      true && true   // truetrue && false   // falsefalse && true   // falsefalse && false   // false   true || true   // truetrue || false   // truefalse || true   // truefalse || false   // false         
    
  • 逻辑运算顺序
    • 逻辑运算的优先级是:非--> 与--> 或
        !true || true     // ture3 && 4 || 5 && 6  // 4
      

6. 赋值表达式

意义运算符
赋值=
``````+=
-=
快捷赋值*=
/=
``````%=
自增运算++
自减运算
  • JS中,=表示赋值,==判断是否相等(不判断类型),===判断是否全等。
  • 赋值运算符会将等号右边的数值,赋予等号左边的变量。
  • 赋值运算也会产生值
    equal.png
  • 快捷赋值
    equal-1.png
    equal-2.png

7. 自增/自减运算法

increment.png
increment-1.png

8. 综合表达式

  • 运算顺序
    synthesis.png
  • 变量的范围表示
    synthesis-1.png

9. 重点内容

  • 表达式有哪几种? 每种表达式分别有哪些运算符?
  • 每种表达式中运算顺序是什么?综合运算顺序是什么?
  • 什么是短路计算? 3 && 11 的结果是多少? 3 || 13 呢?
  • a ++ 和 ++ a 有什么区别?
      var a = 3;var b = 4;console.log(a++ + b++ + ++a + ++b); // 18
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/35063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安卓源码分析(10)Lifecycle实现组件生命周期管理

参考&#xff1a; https://developer.android.google.cn/topic/libraries/architecture/lifecycle?hlzh-cn#java https://developer.android.google.cn/reference/androidx/lifecycle/Lifecycle 文章目录 1、概述2、LifeCycle类3、LifecycleOwner类4、LifecycleObserver类 1、…

nginx禁用3DES和DES弱加密算法

nginx禁用3DES和DES弱加密算法 项目背景 最近护网行动&#xff0c;收到漏洞报告&#xff0c;如下&#xff1a; 漏洞名称SSL/TLS协议信息泄露漏洞(CVE-2016-2183)【原理扫描】详细描述TLS是安全传输层协议&#xff0c;用于在两个通信应用程序之间提供保密性和数据完整性。 TLS…

opencv 基础50-图像轮廓学习03-Hu矩函数介绍及示例-cv2.HuMoments()

什么是Hu 矩&#xff1f; Hu 矩&#xff08;Hu Moments&#xff09;是由计算机视觉领域的科学家Ming-Kuei Hu于1962年提出的一种图像特征描述方法。这些矩是用于描述图像形状和几何特征的不变特征&#xff0c;具有平移、旋转和尺度不变性&#xff0c;适用于图像识别、匹配和形状…

Docker查看、创建、进入容器相关的命令

1.查看、创建、进入容器的指令 用-it指令创建出来的容器&#xff0c;创建完成之后会立马进入容器。退出之后立马关闭容器。 docker run -it --namec1 centos:7 /bin/bash退出容器&#xff1a; exit查看现在正在运行的容器命令&#xff1a; docker ps查看历史容器&#xff0…

docker小白第二天

centos上安装docker docker官网&#xff0c;docker官网&#xff0c;找到下图中的doc文档。 进入如下页面 选中manuals&#xff0c;安装docker引擎。 最终centos下的docker安装文档链接&#xff1a;安装文档链接. 具体安装步骤&#xff1a; 1、打开Centos&#xff0c;输入命…

【BASH】回顾与知识点梳理(十五)

【BASH】回顾与知识点梳理 十五 十五. 指令与文件的搜寻15.1 脚本文件名的搜寻which (寻找『执行档』) 15.2 文件档名的搜寻whereis (由一些特定的目录中寻找文件文件名)locate / updatedbfind与时间有关的选项与使用者或组名有关的参数与文件权限及名称有关的参数额外可进行的…

JVM垃圾回收

如何确定垃圾 对堆垃圾回收前的第一步就是要判断哪些对象已经死亡&#xff08;即不能再被任何途径使用的对象&#xff09; 引用计数法 这个方法就是为对象添加计数器来标识引用个数&#xff0c;计数器为 0 的对象就是不可能再被使用的。但是这种方法存在循环引用问题&#x…

布谷鸟配音:一站式配音软件

这是一款智能语音合成软件&#xff0c;可以快速将文字转换成语音&#xff0c;拥有多种真人模拟发音&#xff0c;可以选择不同男声、女声、童声&#xff0c;以及四川话、粤语等中文方言和外语配音&#xff0c;并且可对语速、语调、节奏、数字读法、多音字、背景音等进行全方位设…

学习笔记整理-JS-01-语法与变量

文章目录 一、语法与变量1. 初识JavaScript2. JavaScript的历史3. JavaScript与ECMAScript的关系4. JavaScript的体系5. JavaScript的语言风格和特性 二、语法1. JavaScript的书写位置2. 认识输出语句3. REPL环境&#xff0c;交互式解析器4. 变量是什么5. 重点内容 一、语法与变…

二、编写第一个 Spring MVC 程序

文章目录 一、编写第一个 Spring MVC 程序 一、编写第一个 Spring MVC 程序 代码示例 创建 maven 项目&#xff0c;以此项目为父项目&#xff0c;在父项目的 pom.xml 中导入相关依赖 <dependencies><dependency><groupId>junit</groupId><artifactI…

分支和循环语句(2)(C语言)

目录 do...while()循环 do语句的语法 do语句的特点 do while循环中的break和continue 练习 goto语句 do...while()循环 do语句的语法 do 循环语句; while(表达式); do语句的特点 循环至少执行一次&#xff0c;使用的场景有限&#xff0c;所以不是经常使用。 #inc…

【uniapp】uniapp自动导入自定义组件和设置分包:

文章目录 一、自动导入自定义组件&#xff1a;二、设置分包和预加载&#xff1a; 一、自动导入自定义组件&#xff1a; 【Volar 官网】https://github.com/vuejs/language-tools 二、设置分包和预加载&#xff1a; 【官方文档】https://uniapp.dcloud.net.cn/collocation…

【服务平台】Rancher运行和管理Docker和Kubernetes,提供管理生产中的容器所需的整个软件堆栈

Rancher是一个开源软件平台&#xff0c;使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher&#xff0c;组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。  完整软件堆栈 Rancher是供采用容器的团…

idea添加作者信息

idea添加作者信息 自定义作者信息idea添加作者信息自定义作者信息 自定义作者信息 idea添加作者信息 在idea中&#xff0c;经常会有这些波浪纹提示&#xff0c;放在上面之后会提示添加作者信息,点击添加作者信息后&#xff0c;但是不是自己想要的 这里提取的话好像没什么办法…

JavaWeb课程学习--Day01

HTML 建立css文件&#xff1a; css使用方式&#xff1a; <span>...</span>无语意包裹标签 css中的三种选择器&#xff1a; 注意&#xff1a;播放视音频时要留出播放空间 盒子模型&#xff1a; 表格标签&#xff1a; 以上表格&#xff1a; 表单标签&#xff1a; 表…

分布式 - 服务器Nginx:一小时入门系列之动静分离

文章目录 1. 动静分离的好处2. 分离静态文件3. 修改 Nginx 配置文件4. location 命令修饰符优先级 1. 动静分离的好处 Apache Tocmat 严格来说是一款java EE服务器&#xff0c;主要是用来处理 servlet请求。处理css、js、图片这些静态文件的IO性能不够好&#xff0c;因此&…

ROS学习--HelloWorld的实现(C++)

1.创建工作空间并初始化 mkdir -p 自定义空间名称/src cd 自定义空间名称 catkin_make上述命令&#xff0c;首先会创建一个工作空间以及一个 src 子目录&#xff0c;然后再进入工作空间调用 catkin_make命令编译。 2.进入 src 创建 ros 包并添加依赖 cd src catkin_create_pk…

苏纷享首届生态人脉会成功举办,纷享销客助力伙伴共同发展

近日&#xff0c;纷享销客&苏纷享成功举办了首届生态人脉会&#xff0c;该活动于8月3日下午在苏州东方之门举行。本次会议汇聚了来自近20家企业的销售精英&#xff0c;包括金蝶、泛微、夏谷、蚂蚁分工、创享、黑湖智造等众多知名企业。会议秉持着“建立生态、共同发展、深耕…

时间复杂度与空间复杂度的详解

目录 1.时间复杂度 2.时间复杂度计算例题 3.空间复杂度 1.时间复杂度 算法中的基本操作的执行次数&#xff0c;为算法的时间复杂度。 如何表达 时间复杂度&#xff1f; 大O的渐进表示法 实际中我们计算时间复杂度时&#xff0c;我们其实并不一定要计算精确的执行次数&#xf…

ArcGIS Pro暨基础入门、制图、空间分析、影像分析、三维建模、空间统计分析与建模、python融合、案例应用

GIS是利用电子计算机及其外部设备&#xff0c;采集、存储、分析和描述整个或部分地球表面与空间信息系统。简单地讲&#xff0c;它是在一定的地域内&#xff0c;将地理空间信息和 一些与该地域地理信息相关的属性信息结合起来&#xff0c;达到对地理和属性信息的综合管理。GIS的…