浅谈javascript中的数据类型转换


Posted in Javascript onDecember 27, 2016

1、把其他的数据类型转换为number类型

    Number()->严格

    parseFloat/parseInt ->非严格

    isNaN(value) 如果value值不是数字类型的,它是首先调用Number转换为数字类型然后在判断是否为有效的数字

    例如:

    Number("12px"); ->NaN

    parseInt("12px"); ->12

    isNaN("12"); ->false

    规律:

   1)把布尔类型转换为数字的话 true->1  false->0

    2)把null/undefined转换为数字 null->0  undefined->NaN  10+null=10   10+undefined=NaN

    3)把[]转换为数字 首先调用数组的toString方法把[]->"",然后在使用Number方法把""->0

2、把其他的数据类型转换为布尔类型

    Boolean

     !!

     ! 先转换为布尔类型,然后在取反

    例如:

    !!1->true

    !!0->false

     ![]->false  !![]->true

    规律:

    只有0、NaN、null、undefined、""这五个转换为布尔类型的时候是false,其余的转换完成都是true

    特殊情况:

    如果你的条件判断中只是单独的一个值,它是首先把1转换布尔类型(->true),在判断是真还是假,如果是真条件成立,反之条件不成立

if (1) { }
  if ("3px" * 3) {//->条件不成立 "3px" * 3=NaN ->false
  }
  if ("3px" + 3) {//->条件成立 "3px" + 3="3px3" ->true
  }

    "+"在JS中不仅仅是数学运算,遇到字符串的时候属于字符串拼接

    "-、*、/"在JS中只能是数学运算,遇到不是number类型的要强制转换为number进行数学性运算

3、两个值进行比较(==比较的,===比较数据类型不一样不会进行默认的转换),如果左右两边的数据类型不一样,我们需要遵循一套法则,进行默认的数据类型转换

    value1==value2

    1)对象==对象  比较的是自己存储的内存地址,如果内存地址不一样就不相等  []==[]->false 每一个空数组都是一个单独的内存地址

    2)对象==字符串 调用toString方法,将对象转换为字符串  []==""->true   

    3)对象==布尔  对象转换为数字(toString-Number),布尔也转换为数字(true->1 false->0)

    []==false ->true  []->0 false->0 0==0->true

    ![]==false -> ![]先把空数组转换为布尔类型然后在取反->false   false==false->true

    4)对象==数字 对象转换为数字  []==0->true  []==1->false

    5)字符串==布尔  两者都转换为数字   "3"==true->false  "1"==true->true

    6)字符串==数字  字符串转换为数字  ""==0->true 

    7)布尔==数字  布尔转换为数字  true==1->true  true==2->false

    8)null==undefined ->true   null===undefined ->false 

      null/undefined和其他的任何值都不相等  null==0->false  

    9)NaN==NaN ->false  NaN和任何的值(包括自己)都不相等

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
用javascript判断IE版本号简单实用且向后兼容
Sep 11 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
jQuery实现的类似淘宝网站搜索框样式代码分享
Aug 24 Javascript
JS获取文件大小方法小结
Dec 08 Javascript
jQuery实现的无限级下拉菜单功能示例
Sep 12 Javascript
vue中用H5实现文件上传的方法实例代码
May 27 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
Nov 30 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
解决layer弹层遮罩挡住窗体的问题
Aug 17 Javascript
深入分析JavaScript 事件循环(Event Loop)
Jun 19 Javascript
我所理解的JavaScript中的this指向
Sep 04 Javascript
js实现简单的点名器随机色实例代码
Sep 20 Javascript
微信小程序开发探究
Dec 27 #Javascript
javascript replace()第二个参数为函数时的参数用法
Dec 26 #Javascript
javascript prototype原型详解(比较基础)
Dec 26 #Javascript
如何提高数据访问速度
Dec 26 #Javascript
Angular的模块化(代码分享)
Dec 26 #Javascript
详解Angular的数据显示优化处理
Dec 26 #Javascript
easyui combotree加载静态数据问题(选不上)解决方法
Dec 26 #Javascript
You might like
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
2017/12/13 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
javascript import css实例代码
2008/07/18 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
Webpack 实现 Node.js 代码热替换
2015/10/22 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
JS克隆,属性,数组,对象,函数实例分析
2016/11/26 Javascript
touch.js 拖动、缩放、旋转 (鼠标手势)功能代码
2017/02/04 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
js实现旋转木马效果
2017/03/17 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
详解Vue调用手机相机和相册以及上传
2019/05/05 Javascript
微信小程序手动添加收货地址省市区联动
2020/05/18 Javascript
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
[01:13:46]iG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python实现定时播放mp3
2015/03/29 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
快速了解python leveldb
2018/01/18 Python
Python 异步协程函数原理及实例详解
2019/11/13 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
Python selenium页面加载慢超时的解决方案
2020/03/18 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
凯特·丝蓓英国官网:Kate Spade英国
2016/11/07 全球购物
李宁官方网店:中国运动品牌
2017/11/02 全球购物
Lacoste(法国鳄鱼)加拿大官网:以标志性的POLO衫而闻名
2019/05/15 全球购物
社区巾帼文明岗事迹材料
2014/06/03 职场文书
委托开发合同书(标准版)
2019/08/07 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
Python 类,对象,数据分类,函数参数传递详解
2021/09/25 Python
Redis实现一个账号只能登录一个设备
2022/04/19 Redis