JavaScript四则运算的一些特殊情况
JavaScript四则运算有一些点是容易在面试中考到的。闲话不多说,直接上点:
一、加法:
正常的加法每个人都会,但是一些特殊情况的加法可能许多人都已经忘记,或者根本就不了解。下面,以一个例子说明:
var number;
number = '5'+5;
问题是:number的值是多少?
在Chrome中的结果如下:
在JavaScript中,遇到这种情况,会将后面的数字自动转化为字符串,即这个运算式与下面的情况是相等的
var number;
number = '5' + '5';
上面的是正常范围的数字,那么问题来了: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四则运算的一些特殊情况相关推荐
- 关于JavaScript中return的使用情况
关于JavaScript中return的使用情况 return的理解 return的使用 注意点 return的理解 return;语句会终止函数的执行,并赋值给函数的结果,将其返回. return; ...
- 百度地图 JavaScript API ios不能使用情况
今天使用百度地图的时候 更改了一下百度地图第定位功能 发现ios上报错了报的是 BMap is not defined 错误 这是官方引入JavaScript API 的方法 解决办法 http换成h ...
- javascript打印直角三角形四种情况
第一象限 <script type="text/javascript">var str = "";for(var i=0;i<10;i++){ ...
- 工程与ArcGIS api for javascript不在同一个tomcat情况下跨域问题
当开发工程与ArcGIS API 所在tomcat不在一起是,即出现跨域问题,跨域问题集中在api的样式图片.字体pbf等. 解决方案: 在ArcGIS API所在tomcat添加跨域过滤器设置. 修 ...
- linux写程序四则运算,Shell编程之变量及四则运算
Shell的学习目标 Shell的基本语法结构: 如:变量的定义.条件判断.循环语句(for.until.while).分支语句.函数和数组等. 基本正则表达式的应用 文件处理:grep.sed.aw ...
- html中输出 u263c,《 JavaScript程序设计》—— 第三章 数据
3.1 数据类型 JavaScript实际上有6种数据类型: 布尔值,只有true和false两个值 数值,比如 81 和 4.21 文本,JavaScript里称之为字符串 特殊值undefined ...
- JavaScript的“ this”通过成立一个高中乐队来解释
by Kevin Kononenko 凯文·科诺年科(Kevin Kononenko) JavaScript的" this"通过成立一个高中乐队来解释 (JavaScript's ...
- JavaScript基础(一) 数据类型
动态类型 JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定. 数据类型 最新的 ECMAScript 标准定义了 7 种数据类型: ...
- easyui treegrid 获取新添加行inserted_18行JavaScript代码构建一个倒数计时器
有时候,你会需要构建一个JavaScript倒计时时钟.你可能会有一个活动.一个销售.一个促销或一个游戏.你可以用原生的JavaScript构建一个时钟,而不是去找一个插件.尽管有很多很棒的时钟插件, ...
最新文章
- numpy使用[]语法索引二维numpy数组中指定行列位置的数值内容(access value at certain row and column in numpy array)
- python为什么慢_python-为什么startswith比切片慢
- java中function_Java 8:java.util.function中的TriFunction(和亲属)在哪里?还是有什么选择?...
- 全国计算机二级表情包,计算机考试报名照片却上传成表情包 又一个段子?
- java商城项目性能调优_javaWEB项目性能调优
- 润乾集算报表呈现输出之表头重复
- 日期getTime()方法以及JavaScript中的示例
- 从数据仓库到大数据平台再到数据中台(内附13张架构图)
- SQL Server 2005 应用 全文搜索
- 经典神经网络 -- DenseNet : 设计原理与pytorch实现
- 北大中文核心期刊目录(部分)
- html转换为pdf的笔顺,笔顺正确写法,很全面.pdf
- babel转码器的使用
- 另辟蹊径,挑战网络战争
- 修改.srt格式字幕文件
- java的resize函数_Java源码解析HashMap的resize函数
- 中国银联-无跳转支付token(银联侧开通)
- P1455 搭配购买
- Nodejs Secure Config 配置加密方案
- Calculate函数内外筛选器的交互过程
热门文章
- 【BZOJ3437】小P的牧场,斜率优化DP
- 2017.9.19 L语言 失败总结
- win10无法装载iso文件_win10镜像文件不能安装怎么办?win10镜像文件无法安装的解决教程...
- linux so 库的生成与调用
- mosquitto源码分析(六)
- find的用法_【同步练习】高一英语下册find+复合宾语用法
- Mono for Android 优势与劣势
- 苹果新Metal API实测:四倍完爆OpenGL ES
- Redis源码分析(一)--Redis结构解析
- 关于Web安全的三个攻防姿势