亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

JavaScript四則運算的一些特殊情況

標簽:
JavaScript

JavaScript四则运算有一些点是容易在面试中考到的。闲话不多说,直接上点:

一、加法:

    正常的加法每个人都会,但是一些特殊情况的加法可能许多人都已经忘记,或者根本就不了解。下面,以一个例子说明:

[javascript] view plain copy print?

  1. var number;  

  2. number = '5'+5;  

var number;
number = '5'+5;

问题是:number的值是多少?

在Chrome中的结果如下:



在JavaScript中,遇到这种情况,会将后面的数字自动转化为字符串,即这个运算式与下面的情况是相等的

[javascript] view plain copy print?

  1. var number;  

  2. number = '5' + '5';  

var number;
number = '5' + '5';

所以,结果是‘55’;

上面的是正常范围的数字,那么问题来了:infinity做加法又是什么结果呢?

number 的数值设定为一个超出范围的数值

[javascript] view plain copy print?

  1. var number = 1E1000;  

var number = 1E1000;

[javascript] view plain copy print?

  1. number = number + 1;   

number = number + 1;

然后运行一下,看看结果:


结果是Infinity,这个是没有问题的。

下一个问题又来了:直接从Number中调出Infinity,结果还是这个 吗?

[javascript] view plain copy print?

  1. var number3;  

  2. number3 = Number.Infinity + 1;  

var number3;
number3 = Number.Infinity + 1;

运行一下,结果出来了:


这个就有点神奇了,结果竟然是NaN! 这个结果是只能背下来的东西,由计算产生的infinity每次增加都是infinity,而如果直接调用infinity,则进行加法会返回NaN。这个点是不太常考到的。

二、减法

下面这个例子就有点神奇了:

[javascript] view plain copy print?

  1. var number;  

  2. number = '5' - 5;  

var number;
number = '5' - 5;


运行结果是:


或许有些人就奇怪了,为什么会出现 0 这个结果?

其实仔细思考一下,这种情况好像又是理所当然的,对于“+”来说,有两个含义:第一个含义是做字符串拼接,第二个含义是加减法中的加法。而对于“ - ”来说,只有一个含义,就是做减法,自然不会转化成字符串了。

那么接下来,依然是超出范围的计算:

var number;
number = Number.MAX_VALUE;

这个是没有超出范围的,那么,我再加上一个比较大的数值,再减去一这个数值,会是什么情况呢?

var number2
number2 = Number.MAX_VALUE + 1E307 - 1E307;

这个式子从数学上来讲和上面的式子是相同的,那么运行一下,


结果是不相同的,而造成这样原因是:如果计算数值超出范围,则停止计算,并返回Infinity。

原文出处

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消