《JavaScript入门经典(第6版)》——2.4 操作符

简介: 本节书摘来自异步社区《JavaScript入门经典(第6版)》一书中的第2章,第2.4节,作者: 【美】 Phil Ballard 译者:李 军陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

本节书摘来自异步社区《JavaScript入门经典(第6版)》一书中的第2章,第2.4节,作者:【美】 Phil Ballard 译者:李 军陈冀康,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.4 操作符

如果不能通过计算操作变量中保存的值,那么这些值的用处就不是很大。

2.4.1 算术操作符
首先,JavaScript可以使用标准的算术操作符进行加、减、乘和除运算。

var theSum = 4 + 3;

显然,前面这条语句执行之后,变量theSum的值是7。在运算中,我们还可以使用变量名称:

var productCount = 2;
var subtotal = 14.98;
var shipping = 2.75;
var total = subtotal + shipping;

JavaScript的减法(−)、乘法(*)和除法(/)也是类似的:

subtotal = total – shipping;
var salesTax = total * 0.15;
var productPrice = subtotal / productCount;

如果想计算除法的余数,可以使用JavaScript的模除运算符,也就是“%”:

var itemsPerBox = 12;
var itemsToBeBoxed = 40;
var itemsInLastBox = itemsToBeBoxed % itemsPerBox;

上述语句运行之后,变量itemsInLastBox的值是4。

JavaScript对变量值的自增和自减有快捷操作符,分别是(++)和(−−):

productCount++;

上述语句相当于:

productCount = productCount + 1;

类似地,

items--;

与下面的语句作用相同:

items = items – 1;

提示:如果变量值的自增或自减不是1,而是其他数值,JavaScript还允许把算术操作符与等号结合使用,比如+=和−=。

如下面两行代码的效果是相同的:

total = total + 5;
total += 5;

下面两行也是一样:

counter = counter - step;
counter -= step;

乘法和除法算术操作符也可以这样使用:

price = price * uplift;
price *= uplift;

关于JavaScript算术操作符的更详细介绍请见本书附录B。

2.4.2 操作符优先级
在一个计算中使用多个操作符时,JavaScript根据“优先级规则”来确定计算的顺序。比如下面这条语句:

var average = a + b + c / 3;

根据变量的名称,这应该是在计算平均数,但这个语句不会得到我们想要的结果。在与a和b相加之前,c会先进行除法运算。为了正确地计算平均数,需要添加一对括号,像下面这样:

var average = (a + b + c) / 3;

如果对于运算优先级不是十分确定,我建议使用括号。这样做并不需要什么额外的代价,不仅能够让代码更易读(无论是对编写者本人还是对需要查看代码的其他人),还能避免优先级影响到运算过程。

说明:对于有PHP或Java编程经验的读者来说,将会发现JavaScript的操作符优先级规则与这两种语言基本是一样的。
2.4.3 对字符串使用操作符“+”
当变量保存的是字符串而不是数值时,算术操作符基本上就没有什么意义了,唯一可用的是操作符“+”。JavaScript把它用于两个或多个字符串的连接(按照顺序组合):

var firstname="John";
var surname="Doe";
var fullname=firstname+" "+surname;

//变量fullname里的值是"John Doe"
如果把操作符“+”用于一个字符串变量和一个数值变量,JavaScript会把数值转换为字符串,再把两个字符串连接起来。

var name = "David";
var age = 45;
alert(name + age);

图2.2所示是对一个字符串变量和一个数值变量使用操作符“+”的结果。

screenshot

本书的第5章将会更详细地讨论JavaScript的数据类型和字符串操作。

实践

{把摄氏度转换为华氏度!} 把摄氏度转换为华氏度的方法是把数值乘9,除以5,然后加32。用JavaScript可以这样做:

var cTemp=100; //摄氏度

// 在表达式里充分使用括号

var hTemp=((cTemp*9)/5)+32;

实际上,我们可以省略代码里的括号,结果也是正确的:

var hTemp = cTemp*9/5 + 32;

然而使用括号可以让代码更易懂,而且有助于避免操作符优先级可能导致的错误。

让我们在Web页面里测试上述代码,如程序清单2.2所示。

程序清单2.2 通过华氏温度计算摄氏温度

screenshot

把这段代码保存到文件temperature.html中,加载到浏览器,应该能够看到如图2.3所示的结果。

screenshot

编辑代码文件,给cTemp设置不同的值,每次都应该能够得到正确的结果。

相关文章
|
1月前
|
JavaScript 前端开发 安全
javascript中的可选链操作符
javascript中的可选链操作符
|
1月前
egg.js 24.12sequelize模型-where操作符
egg.js 24.12sequelize模型-where操作符
25 1
egg.js 24.12sequelize模型-where操作符
|
8月前
|
JavaScript 前端开发 索引
JavaScript Day02 操作符及类型转换与流程控制语句 3
JavaScript Day02 操作符及类型转换与流程控制语句 3
42 0
|
8月前
|
Web App开发 JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 1
JavaScript Day02 操作符及类型转换与流程控制语句 1
49 0
|
8月前
|
JavaScript
JS new操作符的具体干了什么?
JS new操作符的具体干了什么?
37 1
|
5月前
|
存储 JavaScript 前端开发
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
javascript基本语法学习(变量、数据类型、操作符、条件语句、循环)
|
7月前
|
JavaScript 前端开发
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
谈谈 JavaScript 中的空值合并操作符 Nullish coalescing operator
33 0
|
7月前
|
JavaScript
【new操作符做了什么 —— js】
【new操作符做了什么 —— js】
|
8月前
|
JavaScript 前端开发
JavaScript Day02 操作符及类型转换与流程控制语句 2
JavaScript Day02 操作符及类型转换与流程控制语句 2
56 0
|
8月前
|
JavaScript 前端开发
JavaScript -- 操作符和逻辑运算
JavaScript -- 操作符和逻辑运算