JavaScript——运算符的优先级和结合性

目录

任务描述

相关知识

运算符的优先级

运算符的结合性

编程要求

任务描述

本关任务:我们将给出函数mainJs()的完整代码,要求在函数体内第三句以及第五句中添加适当的括号,实现编程要求里面的要求。

要想完成本关任务,必须熟悉运算符的优先级和结合性,请阅读下面的相关知识。

相关知识

运算符的优先级

JavaScript 中运算符的优先级和数学中运算符的优先级意思相同,优先级高的运算符比优先级低的运算符先计算,例如数学中1+2*3算式,先计算2*3,结果再与1相加,所以乘法的优先级高于加法,在 JavaScript 中,不同的优先级也是这个作用。

下面是常见的运算符的优先级:

分类运算符含义结合性
1++前后增量R
1--前后减量R
1逻辑非R
2* / %乘 除 求余L
3+ -加减L
4< <= > >=比较数字顺序L
4in测试属性是否存在L
5==判断相等L
5!=判断不等L
6&按位与L
7&&逻辑与L
8?:条件运算符R
9=赋值R
9+= -= *= /= %=运算且赋值R
10,忽略第一个操作数L

从上到下优先级逐渐降低。第一栏数字相同的运算符优先级相同,对于这个表格,不需要全部记住,但是常见的需要记住,比如加减乘除的优先级高于比较运算符,赋值运算符的优先级几乎是最低的,下面给出例子帮助理解:

var a = 1;
var b = 2;
var c = ++a+b;

因为++的优先级高于+,所以上面的第三个句子等价于:

var c = (++a)+b;

运算符的结合性

运算符的优先级是针对不同优先级的运算符来说的,对于同一级的运算符,运算顺序取决于运算符的结合性,比如加法和减法的优先级相同,而加法和减法都是从左向右结合,所以a+b-c式中,会先计算a+b,即按照阅读的顺序计算。

也有很多运算符是从右到左结合的,比如取反、逻辑非。

上面图中的第三栏就是结合性,R 表示从右向左结合,L 表示从左到右结合,从左向右的占多数,这和我们在数学中的习惯相同。

var d = a*b/c;    // 先计算乘法后计算除法
var aa = 2;
var bb = 3;
var cc = aa *= bb;    // 先计算aa*=bb,再把结果赋值给cc,为6

上面第一个式子是从左到右结合,第四个式子是从右到左结合。 分别等价于:

var d = (a*b)/c;
var cc = (aa *= bb);

编程要求

本关的编程任务是补全右侧代码片段中 Begin 至 Eend 中间的代码,在函数体内第三句以及第五句添加适当的括号,以实现如下功能:

  • 参数 a 先减去1,所得差再与参数 b 相加,然后将结果再与 b 相乘;

  • 上面的结果为24则给参数 c 赋值1,否则赋值0;

  • 计算 c 与 d 的积,这个积再与参数 d 求和,所得结果赋值给参数 e;

  • 函数参见下面的测试说明部分。

本关涉及的代码文件Priority.js的代码框架如下:

function mainJs(a,b) {var a = parseInt(a);var b = parseInt(b);// 请在此处编写代码/********** Begin **********/var c = --a+b*b==24?1:0;var d = 4;var e = c*=d+d;/********** End **********/return e;
}

答案

function mainJs(a,b) {var a = parseInt(a);var b = parseInt(b);// 请在此处编写代码/********** Begin **********/var c = (--a+b)*b==24?1:0;var d = 4;var e = (c*=d)+d;/********** End **********/return e;
}

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

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

相关文章

一点连接千家银行,YonSuite让“银企对账”一键确认

在当今数智化浪潮下&#xff0c;成长型企业面临着前所未有的机遇与挑战。特别是在与银行的对接以及银企对账等方面&#xff0c;传统的手动操作模式已难以满足企业高效、安全的金融管理需求。用友YonSuite作为一款全场景SaaS应用服务&#xff0c;凭借其强大的银企直联功能&#…

AI在线免费视频工具3:声音生视频

1、声音生视频 Noisee&#xff1a;通过声音生成对应视频&#xff0c;可以增加prompt指定生成内容相关视频 https://noisee.ai/create

【基础篇】第5章 Elasticsearch 数据聚合与分析

在Elasticsearch的庞大功能体系中&#xff0c;数据聚合与分析扮演着至关重要的角色&#xff0c;它使我们能够从海量数据中提炼出有价值的信息&#xff0c;为决策提供依据。本章将深入探讨Elasticsearch的聚合功能&#xff0c;从基本概念到常见类型的实践&#xff0c;让你掌握如…

Elasticsearch 使用误区之二——频繁更新文档

在使用 Elasticsearch 时&#xff0c;频繁更新文档是一种常见误区。这不仅影响性能&#xff0c;还可能导致系统资源的浪费。 理解 Elasticsearch 的文档更新机制对于优化性能至关重要。 关于 Elasticsearch 更新操作&#xff0c;常见问题如下&#xff1a; ——https://t.zsxq.c…

Spring Cloud实战:构建分布式系统解决方案

Spring Cloud实战&#xff1a;构建分布式系统解决方案 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨如何使用Spring Cloud来构建分布式系统…

剖析DeFi交易产品之UniswapV4:概述篇

本文首发于公众号&#xff1a;Keegan小钢 UniswapV4 与 UniswapV3 相比&#xff0c;算法上并没有什么改变&#xff0c;依然还是采用集中流动性模型&#xff0c;但架构上变化很大&#xff0c;包括功能架构&#xff0c;也包括技术架构。相比之前的版本&#xff0c;UniswapV4 最大…

百元蓝牙耳机推荐2024,百元蓝牙耳机排行榜盘点

在2024年面对琳琅满目的蓝牙耳机选项&#xff0c;消费者往往难以抉择&#xff0c;特别是在预算有限的情况下&#xff0c;如何在众多产品中挑选出既满足质量又符合预算的耳机成为了一个不小的挑战。 为了帮助大家在繁多的选择中找到真正物有所值的百元蓝牙耳机&#xff0c;我们…

UnityUGUI之一:image和Rawimage

image组件的相关属性 其中SpriteMode&#xff0c;若为单个图片则为Single&#xff0c;图片集则为Multiple 图集的切割 点击Slice可以进行自动切割 为且每个格子都可以进行单独的九宫格切割 当图片被九宫格切割再进行拉伸以后&#xff0c;九宫格的四角不会被拉伸 Tiled&#x…

构建支持多平台的返利App跨平台开发策略

构建支持多平台的返利App跨平台开发策略 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将讨论如何构建支持多平台的返利App&#xff0c;特别关注跨平台…

一棵B+树可以存放多少行数据

以MySQL InnoDB为例。InnoDB存储引擎最小储存单元是页&#xff0c;一页大小固定是16KB&#xff0c;使用该引擎的表为索引组织表。B树叶子存的是数据&#xff0c;内部节点存的是键值和指针。索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中&#xff0c;进而再去…

数据治理不再头疼,筛斗数据为您打造无缝数据处理体验

在当今数字化时代&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的激增和数据来源的多样化&#xff0c;数据治理成为许多企业面临的一大挑战。繁琐的数据提取、混乱的数据结构和不清晰的数据质量&#xff0c;往往让企业陷入数据处理的泥潭。幸运的是…

如何在本地一键配置最强国产大模型

自从OpenAI的ChatGPT横空出世以来&#xff0c;国内外各类大语言模型&#xff08;LLM&#xff09;层出不穷&#xff0c;其中不乏Google的Gemini、Claude、文心一言等等。相较于竞争激烈的商业模型赛道&#xff0c;以Llama为代表的开源大模型的进步速度也十分惊人。 伴随着大语言…

CP AUTOSAR标准之MemoryAccess(AUTOSAR_CP_SWS_MemoryAccess)(更新中……)

1 简介和功能概述 该规范描述了AUTOSAR基础软件模块内存访问(MemAcc)的功能、API和配置。   内存访问模块通过基于地址的API提供对不同内存技术设备的访问。内存访问模块始终由一个或多个内存驱动程序(Mem)补充。内存访问模块与内存设备技术无关,可与闪存、EEPROM、RAM或相变…

Python Tkinter:开发一款文件加密解密小工具

在这个信息泄露风险日益增加的时代&#xff0c;使用文件加密工具对于保护个人隐私和企业机密至关重要。 本文介绍了一款小工具——encryptDecrypt&#xff0c;它不仅提供了一个易于使用的图形界面&#xff0c;简化了加密和解密过程&#xff0c;还确保了数据的安全性&#xff0c…

深入解析 androidx.databinding.BaseObservable

在现代 Android 开发中&#xff0c;数据绑定 (Data Binding) 是一个重要的技术&#xff0c;它简化了 UI 和数据之间的交互。在数据绑定框架中&#xff0c;androidx.databinding.BaseObservable 是一个关键类&#xff0c;用于实现可观察的数据模型。本文将详细介绍 BaseObservab…

python-求s=a+aa+aaa+aaaa+aa...a的值(赛氪OJ)

[题目描述] 求 saaaaaaaaaaaa...a 的值&#xff0c;其中 a 是一个一位的整数。 例如 &#xff1a;2222222222222222(此时共有 5 个数相加)。输入格式&#xff1a; 整数 a 和 n &#xff08; n 个数相加&#xff09;。输出格式&#xff1a; s 的值。样例输入 2 2样例输出 24数据…

WSL——忘记root密码(Ubuntu)

1、问题描述 Windows下的WSL&#xff08;Ubuntu&#xff09;忘记了root密码&#xff0c;无法使用管理员权限。 2、解决方法 关闭 Ubuntu 窗口。打开 Windows 的 Powershell 或 cmd&#xff0c; 以 root 默认登陆 WSL。 wsl -u root 修改对应用户密码。 # xxx为要修改密码的用…

Stable Diffusion【真人模型】:人脸特美的人像摄影大模型wuhaXL_realisticMixV3.0

今天和大家分享一个基于SDXL的真人大模型&#xff1a;wuhaXL_realisticMix。该模型无需使用LORA**就能生成的特别漂亮的人脸&#xff0c;虽然有时候人脸有些假&#xff0c;但是生成的人脸确实非常漂亮。 该模型底模融合了WhiteXL_realisticMix&#xff0c;训练素材来自于视频转…

Dockerfile构建一个包含多个SpringBoot应用程序的镜像

为什么要使用Dockerfile 构建一个包含多个SpringBoot应用程序的镜像呢&#xff1f; 1、可移植性&#xff1a;Dockerfile 定义了一个标准化的方式来构建Docker镜像&#xff0c;意味着无论在哪个系统上(只要它支持Docker)&#xff0c; 都可以使用相同的Dockerfile来构建完全相同的…

pytorch统计学分布

1、pytorch统计学函数 import torcha torch.rand(2,2) print(a) print(torch.sum(a, dim0)) print(torch.mean(a, dim0)) print(torch.prod(a, dim0))print(torch.argmax(a, dim0)) print(torch.argmin(a, dim0)) print(torch.std(a)) print(torch.var(a)) print(torch.median…