全面了解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 相关文章推荐
jQuery JSON的解析方式分享
Apr 05 Javascript
分享28款免费实用的 JQuery 图片和内容滑块插件
Dec 15 Javascript
一道常被人轻视的web前端常见面试题(JS)
Feb 15 Javascript
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
Nov 30 Javascript
jQuery展示表格点击变色、全选、删除
Jan 05 Javascript
详解JavaScript数组过滤相同元素的5种方法
May 23 Javascript
原生javascript实现的全屏滚动功能示例
Sep 19 Javascript
ES6学习教程之模板字符串详解
Oct 09 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 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
改造一台复古桌面收音机
2021/03/02 无线电
一个PHP日历程序
2006/12/06 PHP
yii框架中的Url生产问题小结
2012/01/16 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
PHP的几个常用数字判断函数代码
2012/04/24 PHP
PHP设计模式之解释器模式的深入解析
2013/06/13 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
PHP使用自定义方法实现数组合并示例
2016/07/07 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
PHP 范围解析操作符(::)用法分析【访问静态成员和类常量】
2020/04/14 PHP
Nodejs学习笔记之NET模块
2015/01/13 NodeJs
js如何实现淡入淡出效果
2020/11/18 Javascript
JavaScript高级程序设计(第三版)学习笔记1~5章
2016/03/11 Javascript
微信小程序 五星评分(包括半颗星评分)实例代码
2016/12/14 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
jquery之基本选择器practice(实例讲解)
2017/09/30 jQuery
Webpack 之 babel-loader文件预处理器详解
2018/03/23 Javascript
Vue.js下拉菜单组件使用方法详解
2019/10/19 Javascript
js实现整体缩放页面适配移动端
2020/03/31 Javascript
Node.js API详解之 zlib模块用法分析
2020/05/19 Javascript
python中查找excel某一列的重复数据 剔除之后打印
2013/02/10 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
python 实现tar文件压缩解压的实例详解
2017/08/20 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
由Python编写的MySQL管理工具代码实例
2019/04/09 Python
Python QTimer实现多线程及QSS应用过程解析
2020/07/11 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
Nike台湾官方商店:Nike.com (TW)
2017/08/16 全球购物
大学本科生职业生涯规划书范文
2014/09/14 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
邮政营业员岗位职责
2015/04/14 职场文书
第二次离婚起诉书
2015/05/18 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python