js 的数据类型转换
一直对js的类型转换一直半解,今天理一下思路,首先说一下几个特殊的数值
null
null是特殊的object,故 typeof null 返回object,
null派生于undefined ,故 null == undefined
NaN
NaN是特殊的Number, NaN与任何值(包括自己)进行比较都返回false
Boolean
只有两值,false和true
-----------------------------------------------------------------------------------------
接下来,来说一下进入正题:
toString():除了null和undefined,其它值都有此方法,这也是toString()与String()的区别,而且此方法可以传一个基数
而对于非数值,toString设置参数是无效的,var a = "1234"; a.toString() 返回的是1234而非1234的二进制表示
String():如果传入的参数可以使用toString(),则返回的结果与toString()无基数的情况一致
String(null)返回null String(undefined)返回undefined
String(true/false)返回true/false
------------------------------------------------------------------------------------------------------------
parseInt()/pasefloat():用于把String类型转换成Number类弄,对于基它类型调用此方法都会返回NaN
机制:从每一个非空格开始直到找到一个非有效字符(空格,字母,对于parseInt来说小数点是是非有效的,而对于parseFloat第二个小数点才是无效的),然后把找到的结果再转换成Number
即:parseInt(null/undefined/true/false/NaN)都返回NaN,而Number类弄直接返回原值
parseInt(空格/空字符串) // NaN 因为找不到有效字符,返回null
parseInt(空格123) // 123 parseInt(空格123空格) // 123
Number():用于把整个值,而不是部分值转换成数值,如果转换失败则返回NaN(空格与空字符串是可以转换的)
Number(null) //0
Number(true) //1 Number(false) //0
Number(NaN/undefined) //NaN
Number(空格/空字符串) // 0
Number('123.123.3') // NaN 123.123.3 不能转换成数值
---------------------------------------------------------------------------------------------------------------------------
Bollean():返回true/false
Bollean(null/undefined/0/空字符串) //false
===========================================================================
对于object类的toString()/valueOf()
未完待续
js 的数据类型转换的更多相关文章
- JS中数据类型转换
JS中数据类型转换汇总 JS中的数据类型分为 [基本数据类型] 数字 number 字符串 string 布尔 boolean 空 null 未定义 undefined [引用数据类型] 对象 obj ...
- JS的数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- JS 之 数据类型转换
首先我们来简单了解一下JS中的数据类型,JavaScript拥有字符串.数字.布尔.数组.对象.Null.Undefiend 6中数据类型.同一时候,JavaScript拥有动态类型. 也 ...
- js基础---数据类型转换
js中数据类型: 简单数据类型: number:233,-34,0x23,023 string:"hello"或者'hello' boolean:true.false undefi ...
- JS隐形数据类型转换注意事项
alert('2'===2); //这个结果是false,首先三个等号要比较数据类型,字符串和整数不相等 alert('2'==2); //这个结果是true,因为是两个等号,所以不会比较数据类 ...
- {}+[] = ? 和 []+{} = ? 浅谈JS数据类型转换
参加公司技术嘉年华第一季(前端.服务端)的间隙,陈导问了我一个问题:{}+[] 和 []+{}两个表达式的值分别是什么?根据我的理解我觉得结果应该都是"[object Object]&quo ...
- JS 里的数据类型转换
JS的数据类型转换 一.js中的数据类型Js中的数据类型一共有六种,即number,string,boolean,underfine,null,object. 1.Number Number数据类型指 ...
- JS 数据类型转换
JS 数据类型转换 方法主要有三种 转换函数.强制类型转换.利用js变量弱类型转换. 1. 转换函数: js提供了parseInt()和parseFloat()两个转换函数.前者把值转换成整数,后者把 ...
- js笔记——js数据类型转换
以下内容摘录自阮一峰的<语法概述 -- JavaScript 标准参考教程(alpha)>章节『数据类型转换』,以做备忘.更多内容请查看原文. JavaScript是一种动态类型语言,变量 ...
随机推荐
- Sales_item例子
Sales_item.h #ifndef SALES_ITEM_H #define SALES_ITEM_H #include<iostream> #include<string&g ...
- Ruby on Rails Tutorial 第四章 Rails背后的Ruby 之 类
Ruby和其他面向对象的语言一样,使用类来组织方法,然后实例化类,创建对象.1.构造方法使用双引号是字符串的字面构造方法,也可以使用“具名构造方法”,即在类名上调用new方法 >> s=& ...
- android 注册、登录实现程序
注册页面: user_register.xml: <?xml version="1.0" encoding="utf-8"?> <Linear ...
- GLOG使用注意事项
FLAGS_stderrthreshold 输出到stderr的门限,默认为2(ERROR),默认,ERORR以下的信息不打印到终端 FLAGS_alsologtostderr 当这个全局变量 ...
- 还在用GCD?来看看NSOperation吧
在iOS开发中,谈到多线程,大家第一时间想到的一定是GCD.GCD固然是一套强大的多线程解决方案,能够解决绝大多数的多线程问题,但是他易于上手难于精通且到处是坑的特点也注定了想熟练使用它有一定的难度. ...
- Windows Service 之 安装失败后的删除
一个windows服务在卸载之后并不会马上从服务列表中消失掉,而是在服务列表中会显示服务被禁用:这样在你需要再次安装同名服务时,就装不了了,会被提示同名的服务已经存在.如果是在本地安装,这种情况很容易 ...
- SQlServer2008 之 定时执行sql语句作业的制定
1.打开[SQL Server Management Studio],在[对象资源管理器]列表中选择[SQL Server 代理]: 2.鼠标右击[SQL Server 代理],选择[启动(S)],如 ...
- Fence Repair
有n(n>=1&&n<=20000)个木棒.现在要将这些木棒还原为一根.每次只能将两根连接成一根.费用为这两根的长度.求还原的最小费用. 输入:n,接下来n个正整数,代表长 ...
- Direct3D11-1 初始化
在使用一个东西之前,我们需要初始化他,好比汽车加油,手机充电.于是我们采取平时的编码习惯,试图写下如下代码 Direct3D11 _direct3d11; 事实上,我们 ...
- Android(java)学习笔记198:Android下的逐帧动画(Drawable Animation)
1.帧动画: 帧动画顾名思义,一帧一帧播放的动画就是帧动画. 帧动画和我们小时候看的动画片的原理是一样的,在相同区域快速切换图片给人们呈现一种视觉的假象感觉像是在播放动画,其实不过是N张图片在一帧一帧 ...