(2017.10.16) javascript 数据类型转换与操作
javascript 有 5 种基本数据类型:undefined、null、Boolean、String、Number,还有1 种较复杂的数据类型 Object;各种类型之间可以相互转换,其中有些有趣的现象;本文通过这些现象,看看在这些数据转换中,有那些特点。
其中最特别的要数 Number 类型中的 NaN 了,它有两个特点:1、NaN 和任意数值进行算术操作时,返回的只能是 NaN;2、NaN 不等于任何值,包括 NaN 本身。
NaN == NaN; //false NaN != NaN; //true
如果一个值不小于另一个值,那么它一定大于或等于另一个值。但是 NaN 却不是这样……
NaN < 3; //false NaN >= 3; //false
任意数据类型转换为 Number 类型有 3 个方法,Number()、parseInt() 和 parseFloat();其中 parseInt() 和 parseFloat() 类似,只是前者返回整数,后者返回浮点数;Number() 和 parseInt() 转换字符串中就不太一样了。
Number("1234blue"); //NaN
parseInt("1234blue");
parseInt() 在解析到非数值字符时,停止解析并返回前面解析到的数值。而 Number() 解析到非数值字符时返回 NaN。对于八进制与十进制的转换,它们也有所不同;
// 0 是八进制的前导数,对于十六进制的前导数是 0x
Number("070");
parseInt("070", 8); //输出56,ECMA5 中对于八进制转换十进制,要显式地定义基数,即第二个参数,8
另外,空字符串的表现也不一样;
Number("");
parseInt(""); //NaN
接下来看操作符操作数据又有什么不同;字符和数值相加,后台会把数值转换为字符串。而字符和数值相减,后台把字符串转换为数值。
"3" + 2; //"23" "3" - 2;
数值与字符串进行比较时,后台会把字符串转换为数值;而字符串与字符串比较,则逐个字符进行比较;注:字符编码大小比较,数字(0-9)< 大写字母(A-Z)< 小写字母(a-z);
"23" < 3; //false "23" < "3" //true
关于操作不同类型的数据,有很多复杂的细节,如 Object、undefined、null、数值、等等之间的比较。以上较常见的数据操作,更多以后或补充。
原创文章,版权所有,转载请注明出处!
(2017.10.16) javascript 数据类型转换与操作的更多相关文章
- Util应用程序框架公共操作类(三):数据类型转换公共操作类(扩展篇)
上一篇以TDD方式介绍了数据类型转换公共操作类的开发,并提供了单元测试和实现代码,本文将演示通过扩展方法来增强公共操作类,以便调用时更加简化. 下面以字符串转换为List<Guid>为例进 ...
- Util应用程序框架公共操作类(二):数据类型转换公共操作类(源码篇)
上一篇介绍了数据类型转换的一些情况,可以看出,如果不进行封装,有可能导致比较混乱的代码.本文通过TDD方式把数据类型转换公共操作类开发出来,并提供源码下载. 我们在 应用程序框架实战十一:创建VS解决 ...
- Util应用程序框架公共操作类(一):数据类型转换公共操作类(介绍篇)
本系列文章将介绍一些对初学者有帮助的辅助类,这些辅助类本身并没有什么稀奇之处,如何能发现需要封装它们可能更加重要,所谓授之以鱼不如授之以渔,掌握封装公共操作类的技巧才是关键,我会详细说明创建这些类的动 ...
- JavaScript数据类型转换
原文转自:http://javascript.ruanyifeng.com/grammar/conversion.html#rd JavaScript是一种动态类型语言,变量是没有类型的,可以随时赋予 ...
- JavaScript数据类型转换汇总
ECMAScirpt中的数据类型:undefined.Null.Boolean.Number.String.Object 对一个值使用typeof操作符可能返回下列某个字符串: number(数字). ...
- JavaScript 数据类型转换(显式与隐式)
一.数据类型 JS中有5中简单数据类型(也称为基本数据类型):Undefined.Null.Boolean.Number.String.还有一种复杂数据类型------Object,Object本质是 ...
- 数据类型转换,JS操作HTML
数据类型转换 1.自动转换(在某种运算环境下) Number环境 String环境 Boolean环境 2.强制类型转换 Number() 字符串:纯数字和空字符转为正常数字,其他NaN 布尔值:tu ...
- JavaScript 数据类型转换表
下表显示了将不同的JavaScript值转换为Number,String和Boolean的结果: 原始值 转换为Number 转换为String 转换为Boolean false 0 "fa ...
- 2017.10.16 java中getAttribute和getParameter的区别
(1)getAttribute:表示得到 域中的对象 返回的是OBJ类型; getParameter:表示 得到 传递的参数 返回的是String类型; 也就是getAttribute获得的值需要进 ...
随机推荐
- git pull 冲突
1. 问题描述 error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx ...
- java 通过System.getProperties()获取系统参数
转自:https://www.cnblogs.com/ksuifeng/archive/2010/09/25/1834416.html 1.java的System.getProperty()方法可以获 ...
- 【244】◀▶IEW-Unit09
Unit 9 Food 1)Model1题目及范文讲解 In the world today, there is a problem with food production. As a result ...
- tomcat 开机自启方法
1.把下面的代码保存为tomcat文件,并让它成为可执行文件 chmod 755 tomcat. #!/bin/bash # # /etc/rc.d/init.d/tomcat # init scri ...
- Eclipse 安装插件
Eclipse 安装插件 本文介绍Eclipse插件的安装方法.Eclipse插件的安装方法大体有三种:直接复制.使用link文件,以及使用eclipse自带的图形界面的插件安装方法. AD: 做为当 ...
- sgu 321 The Spy Network (dfs+贪心)
321. The Spy Network Time limit per test: 0.5 second(s)Memory limit: 65536 kilobytes input: standard ...
- linux下的函数dirname()和basename()使用
总览 #include <libgen.h> char *dirname(char *path); char *basename(char *path); 说明 函数以 '/' 为分隔符 ...
- SQL 截取时间
-- 获取系统时间 print getdate() -- 获取3天前的时间 print dateadd(day, -3 , getdate()) -- 获取3天后的时间 print dateadd(d ...
- HDU - 1535 Invitation Cards 前向星SPFA
Invitation Cards In the age of television, not many people attend theater performances. Antique Come ...
- 从扫码支付想到的超级APP主宰一切,数据!数据!还是数据!
前言 做室内定位的人其实内心都明白:基于指纹方法的移动端定位,无论paper每年出来多少,距离真正的大规模应用的距离还有多么遥远.指纹采集,指纹更新,似乎在生产实践上就是不可能的难题.所有还在基于人工 ...