全面了解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 相关文章推荐
JavaScript setTimeout和setInterval的使用方法 说明
Mar 25 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
Aug 13 Javascript
js+html5实现canvas绘制镂空字体文本的方法
Jun 05 Javascript
JavaScript中判断函数、变量是否存在
Jun 10 Javascript
深入理解JavaScript函数参数(推荐)
Jul 26 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
Jul 06 Javascript
分析JS单线程异步io回调的特性
Dec 01 Javascript
详解Vue 中 extend 、component 、mixins 、extends 的区别
Dec 20 Javascript
解决js ajax同步请求造成浏览器假死的问题
Jan 18 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
JS实现灯泡开关特效
Mar 30 Javascript
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
全面解析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中使用smarty生成静态文件的例子
2014/04/24 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
PHP 枚举类型的管理与设计知识点总结
2020/02/13 PHP
jquery实现居中弹出层代码
2010/08/25 Javascript
一些常用的JavaScript函数(json)附详细说明
2011/05/25 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
jquery 合并内容相同的单元格(示例代码)
2013/12/13 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
javascript实现html页面之间参数传递的四种方法实例分析
2015/12/15 Javascript
JavaScrip常见的一些算法总结
2015/12/28 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
2017/02/10 Javascript
Three.js获取鼠标点击的三维坐标示例代码
2017/03/24 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
详解React 的几种条件渲染以及选择
2018/10/23 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
微信小程序地图实现展示线路
2020/07/29 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
详解K-means算法在Python中的实现
2017/12/05 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
Python常用编译器原理及特点解析
2020/03/23 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
如何用Lucene索引数据库
2016/02/23 面试题
这76道Java面试题及答案,祝你能成功通过面试
2016/04/16 面试题
部队领导证婚词
2014/01/12 职场文书
医药类个人求职的自我评价
2014/02/12 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
公司活动方案范文
2014/03/06 职场文书
2014年企业工会工作总结
2014/11/12 职场文书
办公室卫生管理制度
2015/08/04 职场文书