首页 > 编程知识 正文

js除法运算符,JavaScript中的运算符

时间:2023-05-04 13:15:15 阅读:228613 作者:1607

任何一种编程语言,都少不了算运算符,算术运算符就是进行 + – x ÷ 数学运算的。在编程语言里面,又延伸出来一些 自加、自减运算符。

算出来结果之后要把这个结果给别人,就需要赋值运算符=,这时又延伸出来一些+=、-=、*=、/=、%=。

下面通过一个表格来解释一下这些算术运算符:(初始 y=5 )

运算符

描述

例子

x 运算结果

y 运算结果

+

加法

x = y + 2

7

5

减法

x = y – 2

3

5

*

乘法

x = y * 2

10

5

/

除法

x = y / 2

2.5

5

%

取模(余数)

x = y % 2

1

5

++

自增

x = ++ y

6

6

x = y ++

5

6

自减

x = — y

4

4

x = y —

5

4

赋值运算符用于给 JavaScript 变量赋值。

给定 x=10和y=5,下面的表格解释了赋值运算符:

运算符

例子

等同于

运算结果

=

x = y

x = 5

+=

x += y

x = x + y

x = 15

-=

x -= y

x = x – y

x = 5

*=

x *= y

x = x * y

x = 50

/=

x /= y

x = x / y

x = 2

%=

x %= y

x = x % y

x = 0

下面详细说说各个操作符的用法和注意点。

加法 +

加法(+)运算的用法如下所示:

var result = 1 + 2;

console.log(result);//3

如果加法操作符两边都是数值,执行常规的加法运算,然后根据下列规则返回结果:

如果有一个操作数是NaN,则结果是NaN。

如果是Infinity加Infinity,则结果是Infinity。

如果是-Infinity加-Infinity,则结果是-Infinity。

如果是Infinity加-Infinity,则结果是NaN。

如果是+0加+0,则结果是+0。

如果是-0加-0,则结果是-0。

如果是+0加-0,则结果是+0。

下面实例考证:

var a = 1 + NaN;

var b = Infinity + Infinity;

var c = -Infinity + -Infinity;

var d = Infinity + -Infinity;

var e = +0 + +0;

var f = -0 + -0;

var g = +0 + -0;

console.log(a);// NaN

console.log(b);// Infinity

console.log(c);// -Infinity

console.log(d);// NaN

console.log(e);// 0

console.log(f);// -0

console.log(g);// 0

不过,如果有一个操作数是字符串,那么就应该遵循下列规则:

如果操作数都是字符串,则将第一个操作数和第二个操作数拼接起来。

如果只有一个操作数是字符串,则将另一个操作数转化为字符串,然后再将两个恶字符串拼接起来。

如果有一个操作数对象、数值或布尔值,则调用它们的toString()方法取得相应的字符串值,然后再应用前面字符串的规制。对于null和undefined,分别调用String()方法取得字符串”undefined”和”null”。

举个例子:

var result = 5 + 5;//两个数值相加

console.log(result);//10

var result1 = 5 + "5";//一个数值和一个字符串进行加法运算

console.log(result1);//"55"

var b = null;

var a = '5' + b;

console.log(a);//5null: null转成字符串后就是null

var b = undefined;

var a = '5' + b;

console.log(a);//5undefined:undefined转成字符串就是undefined

减法

减法运算(-)用法如下所示:

var a = 2 - 1;

console.log(a);//1

与加法操作符类似,JavaScript中的减法在处理个种数据的时候,同样遵循一些特殊规则:

如果减法操作符两边都是数值,执行常规的减法运算

如果有一个操作数是NaN,则结果是NaN。

如果是Infinity减Infinity,则结果是NaN。

如果是-Infinity减-Infinity,则结果是NaN。

如果是Infinity减-Infinity,则结果是Infinity。

如果是-Infinity减Infinity,则结果是-Infinity。

如果是+0减+0,则结果是+0。

如果是-0减-0,则结果是+0。

如果是-0减+0,则结果是-0。

如果一个字符串是字符串、布尔值、null或undefined,则现在后台调用Number()函数将其转换为数值,然后再根据上面的规则进行减法运算。如果调用Number()函数转换的结果是NaN,则运算的结果是NaN。

如果有一个操作数是对象,则调用valueOf()方法取得该对象的数值,如果得到的值是NaN,则减法运算的结果就是NaN,如果对象没有valueOf方法,则调用toString()方法并将得到的字符串转换为数值。

举个例子:

var result1 = 5 - true;

var result2 = NaN - 1;

var result3 = 5 - 3;

var result4 = 5 - "";

var result5 = 5 - "2";

var result6 = 5 - null;

console.log(result1);//4,因为true转换为1

console.log(result2);//NaN

console.log(result3);//2

console.log(result4);//5,因为""被转换为0

console.log(result5);//3,因为"2"被转换为2

console.log(result6);//5,因为null被转换为0

乘法

乘法运算(*)用法如下所示:

var result = 3 * 5;

console.log(result);// 15

在处理特殊值的情况下,乘法遵循下列规则:

如果操作的数都是数值,执行常规的乘法运算

如果有一个操作数是NaN,则结果是NaN

如果是Infinity与0相乘,则结果是NaN

如果是Infinity与非0数相乘,则结果是Infinity或-Infinity,取决于有符号操作数的符号

如果Infinity与Infinity相乘,则结果为Infinity

如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值

通过代码来说明,印象会更深:

var a = 5 * 5;

var b = 5 * '5';

var c = 5 * NaN;

var d = Infinity * 5;

var e = Infinity * -5;

var f = Infinity * Infinity;

var g = Number('56');

var h = Number('55a');

var m = parseInt('55a');

console.log(a); //25

console.log(b); //25

console.log(c); //NaN

console.log(d); //Infinity

console.log(e); //-Infinity

console.log(f); //Infinity

console.log(g); //5

console.log(h); //NaN:字母不能转换成数字,所以是NaN

console.log(m);//55

除法

除法操作符(/)用法如下所示:

var result = 15 / 3;

console.log(result); //5

除法与乘法类似,也有特殊的处理规则:

如果操作的数都是数值,执行常规的除法运算

如果有一个操作数是NaN,则结果是NaN

如果是0与0相除,则结果是NaN

如果是非0有限数被0除,则结果是Infinity或-Infinity,取决于有符号操作数的符号

如果Infinity与Infinity相除,则结果为NaN

如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值

取余(求模)

取余运算用法如下所示:

var result = 10 % 3;

console.log(result); //1

取余与乘除类似,有以下特殊规则来处理特殊的值:

如果操作的数都是数值,执行常规的除法运算。返回除得的余数

如果被除数是无穷大值,而除数是有限大的值,则结果是

如果被除数是有限大的值,而除数是0,则结果是NaN

如果Infinity被Infinity除,则结果是NaN

如果被除数是有限大的值而除数是无穷大的值,则结果是被除数

如果除数是零,则结果是零

如果有一个操作数不是数值,则在后台调用Number()函数将其转换为数值

在进行算术运算的时候,变量数据是可以根据需要转换类型的。有几个特殊的数据类型:

NaN:Not a Number,他是number类型,翻译成中文就是非数,非数也是数字类型。NaN值是JS在执行数字运算或者数字类型转换时失败的结果值。

Infinity: 这个也是number类型,翻译成中午是无限大的意思。

注意:在进行算术运算的时候,js会调用Number()进行隐式类型转换,这个函数和 parseInt()有不同的规则,可以参考:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。