全面了解JavaScript的数据类型转换


Posted in Javascript onJuly 01, 2016

 首先,由于JavaScript是弱类型语言(弱类型的语言的东西没有明显的类型,他能随着环境的不同,自动变换类型而强类型则没这样的规定,不同类型间的操作有严格定义,只有相同类型的变量才能操作,虽然系统也有一定的默认转换,当绝没有弱类型那么随便,也就是说变量在声明时不需要指定数据类型,变量由赋值操作确定数据类型),所以在JavaScript的类型转换中就存在了强类型语言所没有的隐式转换。

1.1 JavaScript中的隐式转换(自动类型转换)

简单定义: 不同数据类型的数据在做运算的时候可以进行默认的数据类型的转换。
隐式转换通常遵循以下几点规则:

1.数字+字符串:数字转换为字符串。

var n1=12;//number类型
  var n2="12";//string类型
  console.log(n1+n2);//结果为string类型的"1212"

2.数字+布尔值:true转换为1,false转换为0。

var n1=12;//number类型
  var n2=true;//布尔类型
  console.log(n1+n2)//结果为13

 3.字符串+布尔值:布尔值转换为true或者false。

var n1="Hello";//string类型
  var n2=true;
  console.log(n1+n2);//结果为string类型的"Hellotrue"

4.布尔值+布尔值

var n1=true;
  var n2=true;
  console.log(n1+n2);//运行结果为2;

对于上面的案例得到的结果,不确信输出类型的小伙伴可以通过typeof()方法来查看变量的当前类型。

console.log(typeof(11));//number
  console.log(typeof("11"));//string
  console.log(typeof(true));//boolean

1.2 数据类型转换函数

JavaScript中有隐式转换,相对应的就会有显式转换,想要进行显式转换就需要用到下面的几个函数:

1. toString()

---->转换为字符串,在JavaScript中所有数据类型都可以转换为string类型

var n1="12";
  var n2=true;
  var n11=toString(n1);
  var n22=toString(n2);
  console.log(typeof(n11));//得到的结果为string
  console.log(typeof(n22));//得到的结果为string

2.parseInt()

---->解析出一个string或者number类型的整数部分,如果没有可以转换的部分,则返回NaN(not a number)

var n1="12";
  var n2="12han";
  var n3="Hello";
  var n11=parseInt(n1);
  var n22=parseInt(n2);
  var n33=parseInt(n3);
  console.log(n11);//得到的结果为12
  console.log(n22);//得到的结果为12
  console.log(n33);//得到的结果为NaN

运行上面的代码我们不难看出,变量n1 n2 n3转换后的数据类型都是number,但是其中通过函数parseInt()得到的函数n33并不是我们认识的number类型数值,而是为NAN,这就不难看出NaN虽然不是一个数字,但是属于数字类型,只是不能应用到普通数字的任何算法,是一个比较特殊的存在。(后面的博文中会有提到,再次不做赘述)

3.parseFloat()

---->解析出一个string的浮点数部分,如果没有可以转换的部分,则返回NaN(not a number)。

var n1="12.4.5";
  var n2="12.4han";
  var n3="Hello";
  var n11=parseFloat(n1);
  var n22=parseFloat(n2);
  var n33=parseFloat(n3);
  console.log(n11);//得到的结果为12.4
  console.log(n22);//得到的结果为12.4
  console.log(n33);//得到的结果为NaN

通过上面的例子我们可以得出parseFloat()该函数的返回值确实是一个数字,但从几个变量的纵向比较中我们不难看出该函数在遇到第二个小数点之后就不做转换了,此处需特别注意。

以上这篇全面了解JavaScript的数据类型转换就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
prototype 源码中文说明之 prototype.js
Sep 22 Javascript
让input框实现类似百度的搜索提示(基于jquery事件监听)
Jan 31 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
jQuery实现点击弹出背景变暗遮罩效果实例代码
Jun 24 Javascript
Node.js中防止错误导致的进程阻塞的方法
Aug 11 Javascript
AngularJS 视图详解及示例代码
Aug 17 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
JS改变页面颜色源码分享
Feb 24 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
Angular通过指令动态添加组件问题
Jul 09 Javascript
node.js文件操作系统实例详解
Nov 05 Javascript
js实现蒙版效果
Jan 11 Javascript
全面解析JS字符串和正则表达式中的match、replace、exec等函数
Jul 01 #Javascript
浅谈JavaScript中的分支结构
Jul 01 #Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 #Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 #Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 #Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 #Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 #Javascript
You might like
php用数组返回无限分类的列表数据的代码
2010/08/08 PHP
PHP图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP制作万年历
2015/01/07 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
JQuery 选择器、过滤器介绍
2011/02/14 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
2016/07/01 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
vue的diff算法知识点总结
2018/03/29 Javascript
vue iview实现动态新增和删除
2020/06/17 Javascript
javascript中call,apply,bind的区别详解
2020/12/11 Javascript
wxPython中文教程入门实例
2014/06/09 Python
python自动zip压缩目录的方法
2015/06/28 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
英国日常交易网站:Wowcher
2018/09/04 全球购物
巴西服装和鞋子购物网站:Marisa
2018/10/25 全球购物
写出二分查找算法的两种实现
2013/05/13 面试题
高中生自我鉴定范文
2013/10/30 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
排查整治工作方案
2014/06/09 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
个人欠款协议书范本2014
2014/11/02 职场文书
2014年管理工作总结
2014/11/22 职场文书
优质护理服务心得体会
2016/01/22 职场文书
再读《皇帝的新衣》的读后感悟!
2019/08/07 职场文书
教你快速开启Apache SkyWalking的自监控
2021/04/25 Servers
浅谈GO中的Channel以及死锁的造成
2022/03/18 Golang