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

一、加法:

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

var number;
number = '5'+5;

问题是:number的值是多少?

在Chrome中的结果如下:

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

var number;
number = '5' + '5';
所以,结果是‘55’;

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

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

var number = 1E1000;
number = number + 1; 

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

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

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

var number3;
number3 = Number.Infinity + 1;

运行一下,结果出来了:

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

二、减法

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

var number;
number = '5' - 5;

运行结果是:

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

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

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

var number;
number = Number.MAX_VALUE;

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

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

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

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

JavaScript四则运算的一些特殊情况相关推荐

  1. 关于JavaScript中return的使用情况

    关于JavaScript中return的使用情况 return的理解 return的使用 注意点 return的理解 return;语句会终止函数的执行,并赋值给函数的结果,将其返回. return; ...

  2. 百度地图 JavaScript API ios不能使用情况

    今天使用百度地图的时候 更改了一下百度地图第定位功能 发现ios上报错了报的是 BMap is not defined 错误 这是官方引入JavaScript API 的方法 解决办法 http换成h ...

  3. javascript打印直角三角形四种情况

    第一象限 <script type="text/javascript">var str = "";for(var i=0;i<10;i++){ ...

  4. 工程与ArcGIS api for javascript不在同一个tomcat情况下跨域问题

    当开发工程与ArcGIS API 所在tomcat不在一起是,即出现跨域问题,跨域问题集中在api的样式图片.字体pbf等. 解决方案: 在ArcGIS API所在tomcat添加跨域过滤器设置. 修 ...

  5. linux写程序四则运算,Shell编程之变量及四则运算

    Shell的学习目标 Shell的基本语法结构: 如:变量的定义.条件判断.循环语句(for.until.while).分支语句.函数和数组等. 基本正则表达式的应用 文件处理:grep.sed.aw ...

  6. html中输出 u263c,《 JavaScript程序设计》—— 第三章 数据

    3.1 数据类型 JavaScript实际上有6种数据类型: 布尔值,只有true和false两个值 数值,比如 81 和 4.21 文本,JavaScript里称之为字符串 特殊值undefined ...

  7. JavaScript的“ this”通过成立一个高中乐队来解释

    by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) JavaScript的" this"通过成立一个高中乐队来解释 (JavaScript's ...

  8. JavaScript基础(一) 数据类型

    动态类型 JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 数据类型 最新的 ECMAScript 标准定义了 7 种数据类型: ...

  9. easyui treegrid 获取新添加行inserted_18行JavaScript代码构建一个倒数计时器

    有时候,你会需要构建一个JavaScript倒计时时钟.你可能会有一个活动.一个销售.一个促销或一个游戏.你可以用原生的JavaScript构建一个时钟,而不是去找一个插件.尽管有很多很棒的时钟插件, ...

最新文章

  1. numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)
  2. python为什么慢_python-为什么startswith比切片慢
  3. java中function_Java 8:java.util.function中的TriFunction(和亲属)在哪里?还是有什么选择?...
  4. 全国计算机二级表情包,计算机考试报名照片却上传成表情包 又一个段子?
  5. java商城项目性能调优_javaWEB项目性能调优
  6. 润乾集算报表呈现输出之表头重复
  7. 日期getTime()方法以及JavaScript中的示例
  8. 从数据仓库到大数据平台再到数据中台(内附13张架构图)
  9. SQL Server 2005 应用 全文搜索
  10. 经典神经网络 -- DenseNet : 设计原理与pytorch实现
  11. 北大中文核心期刊目录(部分)
  12. html转换为pdf的笔顺,笔顺正确写法,很全面.pdf
  13. babel转码器的使用
  14. 另辟蹊径,挑战网络战争
  15. 修改.srt格式字幕文件
  16. java的resize函数_Java源码解析HashMap的resize函数
  17. 中国银联-无跳转支付token(银联侧开通)
  18. P1455 搭配购买
  19. Nodejs Secure Config 配置加密方案
  20. Calculate函数内外筛选器的交互过程

热门文章

  1. 【BZOJ3437】小P的牧场,斜率优化DP
  2. 2017.9.19 L语言 失败总结
  3. win10无法装载iso文件_win10镜像文件不能安装怎么办?win10镜像文件无法安装的解决教程...
  4. linux so 库的生成与调用
  5. mosquitto源码分析(六)
  6. find的用法_【同步练习】高一英语下册find+复合宾语用法
  7. Mono for Android 优势与劣势
  8. 苹果新Metal API实测:四倍完爆OpenGL ES
  9. Redis源码分析(一)--Redis结构解析
  10. 关于Web安全的三个攻防姿势