龙空技术网

JavaScript学习笔记(五)

Arsarsminuther 53

前言:

如今你们对“js字符串位数”大体比较注重,兄弟们都想要分析一些“js字符串位数”的相关内容。那么小编在网上汇集了一些关于“js字符串位数””的相关文章,希望朋友们能喜欢,小伙伴们一起来学习一下吧!

JS基础语法——运算符(一)

JS的运算符和数学上的运算十分类似,例如数学中的加、减、乘、除、取模等运算,在JS中都可以通过运算符来实现,接下来我们一起来学习一下JS的运算符!

一、算数运算符

JS的算数运算符和数学基本一致,包括了加(+)、减(-)、乘(*)、除(/)、取模(%)、递加(++)、递减(--)

特别注意:在JS中,如果是进行数学计算,一定要将各个需要计算的数据的数据类型变成Number类型,否则会出现一些"奇怪"的事情[狗头]

加法运算符:+

计算1+2

成功输出3

特例:

结果很理所当然的应该是0.3

没想到吧

很明显在数学意义上计算0.1+0.2是等于0.3的,但是在计算机(注意是计算机,而非JS中),任何的数学运算最终都会以二进制的形式进行运算,二进制在运算小数的时候会出现精度丢失的问题,所以就出现了图中的一幕,几乎所有高级语言都存在这个问题。可以采用封装特定函数或者直接保留小数位数解决这个问题。

减法运算符:-

乘法运算符:*

除法运算符:/

减、乘、除和加法类似,就不展开讲了,记住运算符即可。

取模运算符:%

取模(余数)

很明显2能被2整除,所以余数是0

递加运算符:++

递减运算符:--

递加和递减运算符比较特别,主要是自加、自减的顺序问题,例如

递加、递减在变量前面:

递加符号在变量前面

输出的是递加运算后的结果,我们再来看看num变量的值

num变量本身的值也是2

递加、递减在变量后面:

递加符号在变量后面

输出的是递加运算前的结果,我们再次输出num变量

发现num变量本身的值发生了改变

所以,递加、递减运算符在变量前面,会直接进行运算,输出的++变量是运算后的结果,且会改变变量本身的值,而递加、递减运算符在变量后面,会先输出变量本身的值,再进行递加、递减运算,也会改变变量本身的值。

用个更直观的例子大家应该就能懂了

(===是判断两个值是否完全相等的符号,后面会讲到)

++在前面,++num的值相对于num已经改变,++在后面,num++的值相对num还未发生改变

可以看到num和++num是不等的,而num和num++是相等的

二、赋值运算符

JS中的赋值运算符包括 = 、 +=、 -+、 *=、 /+、 %=

=

将1赋值给变量num,实际上这是一步简化操作,完整步骤看下图

完整的赋值步骤,定义一个空变量num,再将1赋值给变量num

很明显,输出num变量结果是1

+=

+=表达的意思是将+=号右边的值和左边变量原有的值相加,再赋值给该变量

这也是简化步骤,完整步骤看下图

num += 1表达的意思就是num = num + 1

很明显,结果是2

-=、*=、/=、%=和+=是一样的,大家可以自己尝试一下

三、字符串运算符

在上文+号那我们提到了如果要做数学运算,一定要确保值都是Number类型,否则就会出现一些"奇怪"的事情,例如

将Number类型的1和String类型的1相加

惊不惊喜,意不意外,结果居然是"11"

我们再来看他的数据类型,JS中可以通过typeof关键字查看数据类型

为了对比,我们新增了一个两个Number类型的1相加的运算结果以及查看它的数据类型

我们发现如果是Number类型和String类型进行+运算,结果就是将运算的两个值直接拼接起来,而且结果是String类型,如果是两个Number类型进行+运算,则是正常的数学计算。

产生这种结果的原因是因为JS中存在一个隐式转换的特性(有兴趣的可以自己去了解),简单来讲如果涉及到的运算中出现了String类型(不管是多少个值相加,只要中间出现一个String类型),那么结果会自动变成String类型,且String类型之后的运算不会出现数学意义上的加法运算,而是会出现值的拼接,String类型之前的运算还会正常进行数学计算,例如

结果到底是111234还是21234呢?

大家可以猜一猜结果到底是哪一个

从上面我们可以看到String类型的数据也是可以进行+运算的,因此很多关于字符串的拼接,都是通过+来实现的,例如

计算两个String数据相加的结果

字符串出现了拼接

在用于字符串拼接时,+也被称为联级运算符

逻辑运算符、比较运算符、三联运算符等我们放到下一篇文章中一起学习!

标签: #js字符串位数 #js数学计算 #js位数不够前面补0 #js保留小数点 #js判断小数点后