全面了解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 相关文章推荐
动态调用CSS文件的JS代码
Jul 29 Javascript
js点击出现悬浮窗效果不使用JQuery插件
Jan 20 Javascript
JavaScript中的prototype和constructor简明总结
Apr 05 Javascript
node.js中的http.request.end方法使用说明
Dec 10 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
Sep 14 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 Javascript
微信小程序  生命周期详解
Oct 27 Javascript
javascript实现用户点击数量统计
Dec 25 Javascript
Easyui在treegrid添加控件的实现方法
Jun 23 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
Aug 23 jQuery
解决vue项目报错webpackJsonp is not defined问题
Mar 14 Javascript
vue项目持久化存储数据的实现代码
Oct 01 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/06/08 PHP
PHP运行模式的深入理解
2013/06/03 PHP
分析php://output和php://stdout的区别
2018/05/06 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
JQuery each打印JS对象的方法
2013/11/13 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
采用自执行的匿名函数解决for循环使用闭包的问题
2014/09/11 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
Backbone.js中的集合详解
2015/01/14 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
JavaScript实现对下拉列表值进行排序的方法
2015/07/15 Javascript
JavaScript实现图片轮播的方法
2015/07/31 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
js css实现垂直方向自适应的三角提示菜单
2016/06/26 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
vue中tab选项卡的实现思路
2018/11/25 Javascript
bootstrap Table实现合并相同行
2019/07/19 Javascript
基于vue与element实现创建试卷相关功能(实例代码)
2020/12/07 Vue.js
python采集百度百科的方法
2015/06/05 Python
Python中random模块生成随机数详解
2016/03/10 Python
Python3 伪装浏览器的方法示例
2017/11/23 Python
python爬虫获取多页天涯帖子
2018/02/23 Python
解决python报错MemoryError的问题
2018/06/26 Python
python去除文件中重复的行实例
2018/06/29 Python
django开发post接口简单案例,获取参数值的方法
2018/12/11 Python
python利用多种方式来统计词频(单词个数)
2019/05/27 Python
Python实现打印实心和空心菱形
2019/11/23 Python
Python文本处理简单易懂方法解析
2019/12/19 Python
HTML5 Canvas锯齿图代码实例
2014/04/10 HTML / CSS
澳大利亚领先的在线药房:Pharmacy Online(有中文站)
2020/02/22 全球购物
外贸业务员工作职责
2014/01/06 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL