全面了解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 相关文章推荐
取得父标签
Nov 14 Javascript
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
javascript 基础篇2 数据类型,语句,函数
Mar 14 Javascript
Js日期选择器并自动加入到输入框中示例代码
Aug 02 Javascript
javascript与css3动画结合使用小结
Mar 11 Javascript
Jquery 自定义事件实现发布/订阅的简单实例
Jun 12 Javascript
谈谈对JavaScript原生拖放的深入理解
Sep 20 Javascript
JS 实现计算器详解及实例代码(一)
Jan 08 Javascript
详解Javascript几种跨域方式总结
Feb 27 Javascript
微信小程序媒体组件详解(视频,音乐,图片)
Sep 19 Javascript
JS块级作用域和私有变量实例分析
May 11 Javascript
微信小程序实现导航栏和内容上下联动功能代码
Jun 29 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
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
PHP操作数组相关函数
2011/02/03 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
浅谈使用PHP开发微信支付的流程
2015/10/04 PHP
PHP代码维护,重构变困难的4种原因分析
2016/01/25 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
JavaScript中__proto__与prototype的关系深入理解
2012/12/04 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
angular.element方法汇总
2015/01/07 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
你有必要知道的25个JavaScript面试题
2015/12/29 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
jQuery表单元素过滤选择器用法实例分析
2019/02/20 jQuery
ES6基础之默认参数值
2019/02/21 Javascript
vue实现弹幕功能
2019/10/25 Javascript
JavaScript实现指定数量的并发限制的示例代码
2020/03/10 Javascript
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
python实现批量转换文件编码(批转换编码示例)
2014/01/23 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
Python基于yield遍历多个可迭代对象
2020/03/12 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
使用Python内置模块与函数进行不同进制的数的转换
2020/04/26 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
HTML5 视频播放(video),JavaScript控制视频的实例代码
2018/10/08 HTML / CSS
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
国际贸易专业推荐信
2013/11/15 职场文书
亲子拓展活动方案
2014/02/20 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
2014三八妇女节活动总结范文四篇
2014/03/09 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
高三复习计划
2015/01/19 职场文书
党员转正意见怎么写
2015/06/03 职场文书
Python3.8官网文档之类的基础语法阅读
2021/09/04 Python