1.3.6 对数据的操作

程序设计需要程序以某种方式处理数据以产生一些输出,对输入的数据可以进行算术处理或者与其他输入结合。本章只是简短地提到几种操作,更深入的讨论放在后面的章节。

指示乘法的符号*是算术操作符的一个例子,JavaScript使用5个算术操作符:加、减、乘、除和模运算。其他算术处理使用函数实现,如求一个数的平方根或幂等,这些将在后面介绍。

将一个或多个变量、表达式或输入的值赋予另一个变量也是程序设计的重要内容,JavaScript有6个赋值操作符。

能够将文本字符串与其他字符串或用户输入进行连接也是很重要的,这需要字符串操作符。

1.3.6.1 算术操作符

算术操作符用于执行变量和值之间的算术操作(见例1.6),这个表达式的左边必须是变量,右边可能是一个变量、一个常量、变量的组合或其他表达式。JavaScript算术操作符如表1-1所示。

表1-1 算术操作符,以y=3为例

例1.6 使用算术操作符 给定下列变量:

a)计税之前,一场游戏和一首歌的费用(cost)是多少?

这两个变量的值相加并存储在新变量cost中,因此;

b)计税之后,一场游戏和一首歌的总费用(totalCost)是多少?

cost*TAX的值是(51.95*.05)或2.5975,这个数加上51.95的结果是:

c)如果消费者将一个$20折扣券应用到b)的结果上,那么totalCost是多少?

用户现在必须支付的总费用是totalCost=34.5475;

在本书的后面,我们将学习如何截断数字,使之只包含两个小数位。

1.3.6.2 赋值操作符

赋值操作符用于为变量赋值(见例1.7),这个表达式的左边必须是变量,右边可以是变量、常量、变量的组合或其他表达式。JavaScript赋值操作符如表1-2所示。

表1-2 赋值操作符,以x=20和y=5为例

例1.7 使用赋值操作符 给定下列变量:

a)如果卖方涨价$5.00,那么游戏的新费用是多少?

这条语句等同于以下较长的语句:

而且这两种情况下的结果都是

b)在计税之前,4首歌的费用是多么?

这条语句等同于以下较长的语句:

而且这两种情况下的结果都是

c)在计税情况下,按来自a)的新价格计费的一场游戏和来自b)的4首歌的总费用是多少?

通过gameCost与songCost的和乘以1加税率(TAX),可以跳过例1.6中b)所做的计算。gameCost+songCost的值是(54.95+8.00)或62.95,乘以1.05得出的结果是:

d)如果消费者现在使用$7.50的贷款,则c)的总费用是多少?

这条语句等同于以下较长的语句:

而且这两种情况下的结果都是

1.3.6.3 用于字符串的连接操作符(+)

如例1.8所示,连接操作符使用符号“+”。当它用于把字符串变量或者文本值加在一起时,符号“+”不是做算术操作符所指的加操作。例如,如果变量greeting有值"Hello,",而变量yourName有值"Jane",那么下列语句把两个字符串连接在一起赋予第三个变量welcome:

在执行这条语句之后,变量welcome包含"Hello,Jane"。

例1.8 使用连接操作符 给定下列变量:

a)greeting将显示的是什么?

变量greeting现在有以下的值:

Welcome back,Kim!

b)如何在a)的逗号和名字之间加一个空格?在名字后面加一个感叹号?你可以用字符串变量连接以下文本:

变量greeting现在有以下值:

Welcome back,Kim!

c)如何告诉Kim她还没有为她在这个网站的订单付款?全文信息将存储在变量result中:

变量result现在有以下值:

Kim,your total cost is$127.87

1.3节检查点

1.9 判断题:

a)布尔变量只能有两个值之一。

b)一个字符串变量可以有数字,但是不能对这样的数字进行计算。

1.10 写一条赋值语句,将存储在变量myNumber中的数字加上3赋给变量calculation。

1.11 给定以下变量,分别按以下要求各写一条赋值语句并将结果存储在变量result中。

a)将result乘以z

b)把x加入result

c)使用y和z计算result除以14的结果

1.12 给定以下变量,分别按以下要求编写赋值语句并将结果存储在变量greeting中。使用连接操作符,并且确保包括需要的标点符号和空格。

a)显示一条欢迎信息"Hi there,Mortimer!Glad you're here."

b)显示一条信息告诉Mortimer运费是多少。

c)显示一条信息说明包括price和shipping的购买总费用。要创建一个新变量存储两个数相加的结果(如total=price+shipping;)。