第二章 数值(中)

198 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动

前言

数值(上) 经过前一篇文章的洗礼,我们也要正式进入数值篇(中)了,来接受运算符、位运算符的洗礼吧亲...

运算符

JavaScript中常用的运算符如表2-1和表2-2所示

表 2-1 前缀运算符

运算符意义描述
+转为数值类型在作为前缀运算符使用时,作用将目标转换为数值类型。如果转换失败之后,结果就会变成NaN。不过我推荐你直接使用Number函数,因为他的语义更为明确
-反转正负我想这个没啥人不晓得嘛,作为前缀运算符使用的时候iou,作用是改变目标的正负。JavaScript的数值字面量其实是不区分正负的,所以像-1的-其实就是前缀运算符,并不是字面量的一部分
typeof返回类型如果目标是一个数值类型(哪怕是NaN),那么该前缀运算符返回的结构是“number”

表 2-2 中缀运算符

运算符意义描述
+加法运算重点来了!:+除了可以做加法运算之外,还可以用于字符串拼接。两值相加的时候,如果其中一个是字符串,那么另一个值也会被转换为字符串进行拼接.这种设计其实是略危险的。要在 JavaScript 中做数值加法运算,除了使用 + 别无他法,所以我们在做两数相加的时候要格外小心。这个时候 Number 函数就排上用场了,它能将操作值转换为数,保证相加值都为数值类型
-减法运算
*乘法运算
/除法运算注意该运算符不是“整数”的意思。如果两个整数使用/相除,那么结果可能是小数。例如,5/2的结果是2.5,而不是2一样
%取余运算JavaScript并不存在取模运算,只有取余运算。取余运算的政府取决于除数。例如,-5%2的结果为 - 1。我个人认为取模运算更为实用。。。(原文哈)
**幂运算JavaScript 吸收了FORTRAN的双星号运算符作为幂运算符,看起来相当有年代感

位运算符

运算符名称描述
&AND如果两位都是 1 则设置每位为 1
OR如果两位之一为 1 则设置每位为 1
XOR如果两位只有一位为 1 则设置每位为 1
~NOT反转所有位
<<零填充左位移通过从右推入零向左位移,并使最左边的位脱落。
>>有符号右位移通过从左推入最左位的拷贝来向右位移,并使最右边的位脱落。
>>>零填充右位移通过从左推入零来向右位移,并使最右边的位脱落。

Math

Math对象包含一系列本该在Number中的重要函数。
Math.floor 和 Math.trunc 都是将数转换为整数的函数。不同的是,math.fllor返回的是一个恰比传入参数小的整数,而math.trunc返回的则是恰比传入参数更接近0的整数。它们在正数上的结果是一样的,但在负数结果上存在差异。

Math.floor(-2.5) // -3
Math.floor(-2.5) // -2

Math.min 返回的是传入的一系列参数中最小的数,而Math.max则返回最大的数。 Math.randow的返回是一个 0 和 1之间的数。这个函数通常在游戏中使用,但不应该在加密应用以及赌博游戏中使用。