全面了解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 相关文章推荐
js实现图片轮换效果代码
Apr 16 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
Javascript基础教程之if条件语句
Jan 18 Javascript
JavaScript中的函数嵌套使用
Jun 04 Javascript
javascript实现简单加载随机色方块
Dec 25 Javascript
Vue.js实现拖放效果的实例
Sep 30 Javascript
JavaScript实现自定义媒体播放器方法介绍
Jan 03 Javascript
VUE JS 使用组件实现双向绑定的示例代码
Jan 10 Javascript
浅析JavaScript中的平稳退化(graceful degradation)
Jul 24 Javascript
理解 Node.js 事件驱动机制的原理
Aug 16 Javascript
解决ie img标签内存泄漏的问题
Oct 13 Javascript
利用Vue实现一个markdown编辑器实例代码
May 19 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 mysql分页实例代码
2008/04/10 PHP
php生成静态页面的简单示例
2014/04/17 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP基于SMTP协议实现邮件发送实例代码
2017/04/27 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
IE和firefox浏览器的event事件兼容性汇总
2009/12/06 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
延时加载JavaScript代码提高速度
2015/12/27 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
引入JavaScript时alert弹出框显示中文乱码问题
2017/09/16 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
Vue Prop属性功能与用法实例详解
2019/02/23 Javascript
五分钟搞懂Vuex实用知识(小结)
2019/08/12 Javascript
js实现无刷新监听URL的变化示例代码详解
2020/06/03 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
Python变量和字符串详解
2017/04/29 Python
彻底理解Python list切片原理
2017/10/27 Python
Python编程实现双链表,栈,队列及二叉树的方法示例
2017/11/01 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python判断有效的数独算法示例
2019/02/23 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
python返回数组的索引实例
2019/11/28 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
电气自动化自荐信
2013/10/10 职场文书
广播节目策划方案
2014/05/23 职场文书
星级党支部申报材料
2014/05/31 职场文书
中国梦演讲稿范文
2014/08/28 职场文书
文明倡议书
2015/01/19 职场文书
心灵点滴观后感
2015/06/02 职场文书
找规律教学反思
2016/02/23 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书
亲情作文之母爱
2019/09/25 职场文书
golang语言指针操作
2022/04/14 Golang