系统概括javaScript运算符

news2024/11/15 15:57:05

目录

一.前言

二.算术运算符

三.前置后置递增运算符

四.比较运算符

五.逻辑运算符

六.各类运算符的优先级


一.前言

        运算符通常被称为操作符,是用于实现赋值,比较和执行算术运算等功能的符号。

主要包括算术运算符,比较运算符,逻辑运算符,赋值运算符。

二.算术运算符

        用于执行两个变量或者值的算术运算,如+,-,*,/,%。

运算的顺序一般是先加减后乘除,有小括号先算小括号。值得注意的是,我们一般不直接将浮点数拿来进行运算,因为编译器需要将浮点数转化为二进制数字,会有精度误差。

下面我们以一个简单加法器为案例,来解释下算术运算符。

简单加法器的源代码如下:

        

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>
    var num1=prompt('请输入要操作的第一个数:')
    var num2=prompt('请输入要操作的第二个数:')
    var result=parseFloat(num1)+parseFloat(num2)
    alert(result)
  </script>
</head>
<body>
  
</body>
</html>

如图所示,因为我们使用prompt获取到的数据是字符串型的,而我们在进行加法计算的时候,首先就得将其转化为数字型,即用到了parseFloat这个方法,且支持浮点型数字。

执行结果如下所示:

 

 

 

三.前置后置递增运算符

        当++放在变量的前面时称为前置递增运算符。而当++放在变量的后面时称为后置递增运算符。两者在单独使用的时候是没有区别的,结果都一样。但当它们与其他代码连用的时候,结果可能就会产生不一样。下面我们来看几个案例:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>
    var num=0;
    num++;
    console.log(num);
    var num1=0;
    ++num1;
    console.log(num1)
  </script>
</head>
<body>
  
</body>
</html>

由图可见,num和num1初始值都为0,当它们分别进行前置递增跟后置递增的时候结果是不是相同的呢?我们来看运行结果:

如图可以看到两者结果是一样的,都为1,也就是都进行递增1的操作。

当它们与其它代码连用的时候又会产生怎么样的效果呢?我们来看一下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>  
    var num=10
    console.log(++num + 2)
    var num1=10
    console.log(num1++ + 2)
  </script>
</head>
<body>
  
</body>
</html>

结果如下:

 

如图我们可以发现第一个的值为13,而第二个的值却发生了改变,是12。这是因为我们的++num是先进行自加操作,再返回值的,也就是10加1之后再加的2,所以结果为13。而我们的num++却是先返回值,再进行自加操作,因此也就还是10加上2,结果为12。

四.比较运算符

        是两个数据进行比较时所使用的运算符,比较运算之后,会返回一个布尔值作为比较运算的结果。

        值得注意的是我们程序里面的等于符号是==,它默认转换数据类型,比如比较的两者,一个为字符型,一个为数字型,则会把字符串型的数据转为数字型来进行比较。

        另外,有三个===等于号的,需要两边的值和数据类型完全一样才会返回True。

        如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>  
    console.log(4 > 3)           //两个数字型之间的比较
    console.log(20 == '20')      //数字型与字符串型的两个等号比较
    console.log(32 === '32')     //数字型与字符串型的三个等号比较
  </script>
</head>
<body>
  
</body>
</html>

结果如下:

 

第一个表达式的值4>3肯定是正确的,因此返回true。第二个由于==号会自动进行类型转换,因此也是true。而第三个===号要求值和数据类型要求都是相同的,而这里的数据类型不同,因此返回false。

五.逻辑运算符

        是用来进行布尔值运算的运算符,其返回值也是布尔值,用于多个条件的判断。

主要有逻辑与&&:只有当两侧都为True的时候,结果才是True。

逻辑或||:两侧有一个True的时候,结果就是True。

逻辑非!:取反符,当结果为True时,会变为False。

 值得注意的是,这里需要注意逻辑与短路运算和逻辑或短路运算。

其中逻辑与短路运算:如果表达式1结果为真,则返回表达式2;如果表达式1为假,则返回表达式1。

逻辑或短路运算:如果表达式1结果为真,则返回的是表达式1;如果表达式1为假,则返回表达式2。

六.各类运算符的优先级

        优先级按从高到低依次为:

1)小括号()

2)一元运算符:++,--,!

3)算术运算符:先* / %后+ -

4)关系运算符:> ,>= ,< ,<=

5)相等运算符:==,!=,===,!==

6)  逻辑运算符:先&&后||

7)赋值运算符:=

8)逗号运算符:,

 

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

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

相关文章

Vue 3 中创建一个动态的组件实例

本文将介绍如何在 Vue 3 中实现一个动态 Toast 组件实例。我们将创建一个简单的 Toast 组件&#xff0c;并使用一个动态创建实例的脚本来显示 Toast 消息。在 Vue 3 中创建动态组件实例有许多好处&#xff0c;这些好处主要体现在灵活性、性能、可维护性和用户体验等方面。 创建…

备考美国数学竞赛AMC8和AMC10:吃透1850道真题和知识点

距离接下来的AMC8、AMC10美国数学竞赛还有几个月的时间&#xff0c;实践证明&#xff0c;做真题&#xff0c;吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。 通过做真题&#xff0c;可以帮助孩子找到真实竞赛的感觉&#xff0c;而且更加贴近比赛的内容&#xff0c;…

【python】PyQt5顶层窗口相关操作API原理剖析,企业级应用实战分享

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

2023年全国大学生电子信息竞赛E题——自动追踪系统(stm32和openmv+普通舵机)完美解决第四问

当时做的时候&#xff0c;当时看别人开源的23年的题&#xff0c;感觉一头雾水。两个字没思路。确实只有做了才会有思路。我这里清晰的整理出来思路。 1.第一问的复位问题就是写一个函数&#xff0c;如果按键按下&#xff0c;就进入&#xff0c;再按下就退出 当然这个复位是写死…

VMware Workstation 虚拟机网络配置为与主机使用同一网络

要将 VMware Workstation 虚拟机网络配置为与主机使用同一网络&#xff0c;我们需要将虚拟机的网络适配器设置为桥接模式。具体步骤如下&#xff1a; 配置 VMware Workstation 虚拟机网络为桥接模式 打开 VMware Workstation&#xff1a; 启动 VMware Workstation。 选择虚拟机…

某企业数据治理总体解决方案(45页PPT)

引言&#xff1a;集团企业数据治理总体解决方案旨在构建一个高效、安全、合规且灵活的数据管理体系&#xff0c;以支持企业决策优化、业务创新、风险管理和运营效率提升。该方案通过整合数据资源、规范数据流程、强化数据质量和促进数据共享&#xff0c;实现数据资产的最大化价…

【文档】软件详细设计说明书(直接套用word)

软件详细设计说明书直接套用实际项目。 原件可获取。

Golang | Leetcode Golang题解之第230题二叉搜索树中第K小的元素

题目&#xff1a; 题解&#xff1a; type MyBst struct {root *TreeNodenodeNum map[*TreeNode]int // 统计以每个结点为根结点的子树的结点数&#xff0c;并存储在哈希表中 }// 统计以 node 为根结点的子树的结点数 func (t *MyBst) countNodeNum(node *TreeNode) int {if…

百度网盘资料使用

1. 将链接复制到浏览器打开&#xff0c;点击提取文件 2. 提取文件&#xff0c;进入如下界面 3. 因为文件太大&#xff0c;而且未开会员&#xff0c;所以无法全部转存到网盘&#xff0c;只能分批次转存 点击目录&#xff0c;进入文件夹 1&#xff09;选择一个喜欢的文件&#…

【密码学】消息认证

可以用“信封印章”来类比消息认证的过程。假设你要给远方的朋友写一封信。为了确保信件的内容不被他人篡改或者冒充&#xff0c;你会采取一些措施来保证信件的真实性与完整性。 具体步骤如下&#xff1a; 撰写信件&#xff1a;你写下了一封信&#xff0c;内容是你和朋友约定的…

Java常用的三种注解

1、 基本注解 一、注解的概念 1、注解也叫元数据&#xff0c;是JDK1.5版本开始引入的一个特性&#xff0c;用于对代码进行说明&#xff0c;可以对包、类、接口、字段、方法参数、局部变量等进行注解。注解的形式是“单词”。 在不改变原有逻辑的情况下&#xff0c;使用注解在源…

《系统架构设计师教程(第2版)》第11章-未来信息综合技术-07-大数据技术概述

文章目录 1. 大数据的定义2. 大数据的研究内容2.1 面临的问题2.2 面临的挑战2.3 分析步骤2.3.1 数据获取和记录2.3.2 信息抽取和清洗2.3.3 数据集成、聚集和表示2.3.4 查询处理、数据建模和分析2.3.5 解释 3.大数据的应用领域3.1 制造业的应用3.2 服务业的应用3.3 交通行业的应…

Nifi中的Controller Service

Service简介 首先Nifi中的Controller Service 和我们MVC概念中的Controller Service不是一个概念&#xff0c;Nifi中的Controller Service更像是和Processor同级的一个概念&#xff0c;它和Processor在我个人的使用经验来理解的话就是它是预制好的各种服务&#xff0c;可以被P…

java入门1.5.0

前言&#xff1a; 在java入门1.4.0中&#xff0c;我们快速构建了一个基于Maven管理的Spring boot3项目&#xff0c;对基本文件结构有了初步的认知&#xff0c;创建了git仓库 正片: 看山是山&#xff0c;看山不是山&#xff0c;看山还是山&#xff0c;下面两段代码很好了验证这…

51单片机嵌入式开发:9、 STC89C52RC 操作LCD1602技巧

STC89C52RC 操作LCD1602技巧 1 代码工程2 LCD1602使用2.1 LCD1602字库2.2 巧妙使用sprintf2.3 光标显示2.4 写固定长度的字符2.5 所以引入固定长度写入方式&#xff1a; 3 LCD1602操作总结 1 代码工程 承接上文&#xff0c;在原有工程基础上&#xff0c;新建关于lcd1602的c和h…

逐步实践复现 SELF-RAG

SELF-RAG 简介 SELF-RAG&#xff08;Self-Reflective Retrieval-Augmented Generation&#xff09;是一种检索增强生成&#xff08;RAG&#xff09;的框架&#xff0c;它通过自我反思学习检索、生成和批判&#xff0c;以提高大型语言模型&#xff08;LLM&#xff09;的质量和真…

谷粒商城实战笔记-28-前端基础-技术栈简介

文章目录 一&#xff0c;学习目标1&#xff0c;VSCode的使用2&#xff0c;开发语言ES6的学习目标3&#xff0c;Node.js的学习目标4&#xff0c;Vue的学习目标5&#xff0c;Babel的学习目标6&#xff0c;webpack的学习目标 二&#xff0c;前后端技术栈的比较 本节的主要内容是介…

KEIL下载芯片包记录

第一步 第二步 第三步

oracle 23ai新的后台进程bgnn介绍

前言 昨天发文研究了哪些oracle 后台不能杀 具体文章如下链接 oracle哪些后台进程不能杀&#xff1f;-CSDN博客 其中23ai中新增了一个后台进程bgnn 但是在oracle 23ai database reference中并没有找到该后台进程 有点不甘心就开了个SR&#xff0c;找oracle 官方来看看这个后…

Go语言---定时器

定时器 Timer-只响应一次 Timer 是一个定时器&#xff0c;代表未来的一个单一事件&#xff0c;可以告诉 timer 要等待多长时间&#xff0c;它提供一个 channel&#xff0c;在将来的那个时间那个 channel 提供了一个时间值。 2s后&#xff0c;往timer.C写数据&#xff0c;有…