js之意想不到的结果
js 是弱类型语言 ,在进行计算时 如果遇到不能计算的单位,就会进行默认转换
1、typeof NaN 结果为 “number” 原因:NaN 表示 不是不是一个数字(Not a Number),因此结果是number
2、9,999,999,999,999,999 输出结果为 100,000,000,000,000 原因:js能够精确的最大整数 貌似只能表示16位十进制,大于这个数就会四舍五入,按照IEEE 754标准的舍入规则,一般舍入的是偶数
3、0.5 + 0.1 == 0.6 true
但是 0.1 + 0.2 == 0.3 false
4、Math.max() 输出 -Infinity 因为如果没有大于负无穷大的数字,所有大于负无穷大的数字都应该是最大值
Math.min() 输出 Infinity 因为所有小于正无穷大的数字都应该是列表中最小的
5、[] + [] 输出"" 因为 + 是默认向字符串方向转化,- * 是默认向数字方向转化 所以相当于是 "" +"" = ""
6、 [] + {} 输出 "[object object]" 因为 {} 是 对象
7、{} +[] 输出 0
8、true + true + true === 3 输出 true 因为true转化为字符串是1
9、true - true 输出 0
10、 true == 1 输出 true
true === 1 输出 false 因为=== 即比较类型又比较数值 ,类型不一样,所以为false
11、 (! + [] + [] + ![] ).length 输出 9
12、 9 + '1' 输出"91" 因为 + 是默认向字符串方向转化
13、 91 - "1" 输出 90 因为 - * 是默认向数字方向转化
14、 [] == 0 输出 true
js之意想不到的结果的更多相关文章
- 探真无阻塞加载javascript脚本技术,我们会发现很多意想不到的秘密
下面的图片是我使用firefox和chrome浏览百度首页时候记录的http请求 下面是firefox: 下面是chrome: 在浏览百度首页前我都将浏览器的缓存全部清理掉,让这个场景最接近第一次访问 ...
- 自己用js实现全屏滚动
参照fullPage.js的效果,用自己的想法实现的. 实现的效果:1.全屏滚动,滚动一下齿轮就会滚动全屏. 2.自适应缩放,无论怎么改变窗口的大小,都会保证用一个元素占满全屏. 下一步计划: 1.改 ...
- js函数表达式和函数声明的区别
我们已经知道,在任意代码片段外部添加包装函数,可以将内部的变量和函数定义"隐 藏"起来,外部作用域无法访问包装函数内部的任何内容. 例如: var a = 2; function ...
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- 再探JS数组原生方法—没想到你是这样的数组
最近作死又去做了一遍javascript-puzzlers上的44道变态题,这些题号称"JS语言专业八级"的水准,建议可以去试试,这里我不去解析这44道题了, ...
- 20个JS优化代码技巧
原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...
- js立即执行函数
一.JS立即执行函数的写法 方式1.最前最后加括号 (function(){alert(1);}()); 方式2.function外面加括号 (function(){alert(1);})(); ...
- js实现动画效果框架
RT,是参照慕课的教程做的.两个多小时的教程,看完了然后晚上的时候做了下,看的时候感觉明白了,但其实做的时候还是有很多小细节需要处理的. 上代码,思想什么的直接去慕课看教程就好了.点击这里 注释也比较 ...
- js 字符串转换数字
方法主要有三种转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把值转换成浮点数.只有对 ...
随机推荐
- Ubuntu使用小技巧汇总
1. Ubuntu创建/切换root用户 sudo passwd rootsu root 2. 解决Ubuntu14.04系统没有自带右键打开终端的问题 sudo apt-get install na ...
- handler method 参数绑定常用注解
handler method 参数绑定常用的注解,我们根据他们处理的Request的不同内容部分分为四类: A.处理requet uri 部分(这里指uri template中variable,不含q ...
- 纯CSS导航栏下划线跟随效果
参考文章 <ul> <li>111</li> <li>2222</li> <li>3333333</li> < ...
- js.console携程近期低价机票信息
!function(){var city = {"SHA":"上海虹桥","PVG":"上海浦东","YIW& ...
- Flux转Mono next()
import java.util.LinkedHashMap; import java.util.Map; import java.util.NoSuchElementException; impor ...
- UML-用例关联
1.用例关联:就是各个用例之间的关系,分3种关系分别是:包含关系.扩展关系.泛化关系. 2.包含关系 1).示例 2).使用场景 A.用例在其他用例中重复使用 B.用例非常复杂冗长,将其分解为子单元便 ...
- Linux设置邮箱发送邮件
安装sendmail服务 然后配置/etc/mail.rc文件,如果没有生成就自己建立. 内容如下: set from=xxx@163.com smtp=smtp.163.com set smtp-a ...
- atan2&sin
//弧度转化角度:弧度*180/PI //角度转化弧度:角度*PI/180 #include <math.h> #include <stdio.h> const double ...
- 到头来还是逃不过Java - 流程控制
流程控制 没有特殊说明,我的所有这个系列的Java13的笔记都是从廖老师那里摘抄.总结过来的,侵删 引言 兜兜转转到了大四,学过了C,C++,C#,Java,Python,学一门丢一门,到了最后还是要 ...
- WINSCP 使用笔记
前期准备: 1.官网下载:http://winscp.net/eng/docs/lang:chs 官网C#示例:http://winscp.net/eng/docs/library#csharp 当然 ...