欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

javascript基础课程之算数表达式定义用法详解

程序员文章站 2022-04-15 22:41:46
...
基本的算术运算符是*、/、%、+、-。除了+加法,其它的运算符特别简单,只是在必要的时候操作符转化为数字而已,然后求积、商、余(模)和差。所有那些无法转换为数字的操作都将转换为NaN值。如果操作数(或者转换结果)是NaN值,算术运算结果也是NaN

运算符“/”用第二个操作数来除以第一个操作数,如果你使用过那些区分整数型和浮点数型的编程语言。那么用一个整数除以一个整数时,则希望得到的结果也是整数。在javascript中所有的数字都是浮点数型的,除法运算的结果也是浮点型。比如5/2结果是2.5,而不是2。除数为0的运算结果为正无穷大或负无穷大。而0/0的结果是NaN。所有这些运算均不会报错。

运算符“%”计算的是第一个操作数对第二个操作数的模,换句话说,就是第一个操作数除以第二个操作鼠的余数。结果的符号和第一个操作鼠(被除数)符号保持一致。例如5%2的结果为1,-5%2为-1。

求余运算符的操作数通常都是整数,但也适用于浮点数。6.5%2.1结果是0.2。(0.19999999999999973)

i.“+”运算符

二元加法运算符“+”可以对两个数字做加法,也可以做字符串连接操作:

1+2 //=> 3
"hello" + "" + "there" // =>"hello there"
"1"+"2" //=>"12"

当两个操作数都是数字或都是字符串的时候,计算结果是显而易见的。然而对于其他情况来说,则要进行一些必要的类型转换。并且运算符的行为依赖于类型的转换的结果。从技术上来讲,加法操作符的行为表现为:

如果一个操作数是对象,则对象会遵循对象到原始值的转换规则为原始类值(参照3章8节3小节)。日期对对象toString()方法执行转换,其他对象则通过valueOf()方法执行转换(如果valueOf()方法返回一个原始值的话)。由于多数对象都不具备可用的valueOf()方法,因此他们会通过toString()方法来执行抓换
在进行了对象到原始值的转换后,如果其中一个操作鼠是字符串的话,另一个操作数也会转换为字符串。然后进行字符串连接。
否则,两个操作数都将转换为数字(或者NaN),然后进行加法操作。
这里有一些例子

1 + 2 //=>3 加法
"1" + "2" //=>"12" 字符串连接
"1" + 2 //=>"12"数字转换为字符串后进行字符串连接
1 + {} //=>"1[object object]":对象转换为字符串后进行字符串连接
true + true //=>2 布尔值转换为数字后做加法
2 + null //=>2 null转换为0后做加法
2 + undefined //=>NaN undefined转换为NaN做加法

最后,特别要注意的是。当加号运算符合字符串一起使用时,要考虑加法对运算顺序的影响。也就是说,运算结果是依赖于运算符的运算顺序的,比如

1 + 2 + "bmice" //=> "3 bmice"
1 + (2 + "bmice") => "12bmice"

ii.一元运算符

一元运算符作用于一个单独的操作数。并产生一个新值。在javascript中,一元运算符具有很高的优先级,而且都是右结合。本节讲述一元运算符(+,-,++和--),必要时,他们将操作转换为数字。需要注意的的是+ -是一元运算符,也是二元运算符、

一元加法+

一元加法运算符把操作数数转换为数字(或者NaN),并且返回这个转换后的数字。如果操作数本身就是数字,则直接返回这个数字。

一元减法-

当-号做一元运算符时,它会根据需要把操作数转换为数字,然后改变运算结果的符号、

递增++

递增“++”运算符对其操作数进行增量(+1)的操作,操作数一个左值(变量、数组元素或者对象属性)。运算符将操作数转换为数字。然后给数字加1、并将加1后的数值重新赋值给变量、数组元素或者对象属性。

递增++ 运算返回值依赖它对操作数的位置。

当操作符在操作数数之前,称为“前增量”(pre-increment)运算符,它对操作数进行增量计算,并返回计算后的值。

当操作符在操作数之后,称为"后增量"(post-increment)运算符,它对操作数进行增量计算,但返回为做增量计算的(unincremented)值。如

var i = 1,j = ++i //i和j的值都是2
var i = 1,j = i++; //i是2,j是1
需要注意的是,便打算++x并总和x=x+1完全一样,“++”运算符从不进行字符串连接操作,它总会将操作数转换为数字并增1.如果x是字符串“1”,++x的结果就是数字2,而x+1是字符串"11"

递减和递增的操作方式是同样的,它把操作数转换为数组,然后减1.

iii.位运算符

位运算符可以对数字表示的二进制数据进行更低层级的按位运算。尽管它们不是传统的纯数学运算,但这里也归类为算术运算符,因为他们作用于数值类型的操作并返回数字。

以上就是javascript基础课程之算数表达式定义用法详解的详细内容,更多请关注其它相关文章!