浅谈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的一种模块模式
Mar 22 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
25个优雅的jQuery Tooltip插件推荐
May 25 Javascript
基于jquery的滚动鼠标放大缩小图片效果
Oct 27 Javascript
javascript中的toFixed固定小数位数 简单实例分享
Jul 12 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
Jan 06 Javascript
JS+CSS实现Div弹出窗口同时背景变暗的方法
Mar 04 Javascript
javascript DIV实现跟随鼠标移动
Mar 19 Javascript
利用Node.JS实现邮件发送功能
Oct 21 Javascript
element-ui如何防止重复提交的方法步骤
Dec 09 Javascript
Vue 实现登录界面验证码功能
Jan 03 Javascript
vue 限制input只能输入正数的操作
Aug 05 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
php生成zip压缩文件的方法详解
2013/06/09 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
xmlHTTP实例
2006/10/24 Javascript
DOM Scripting中的图片切换[兼容Firefox]
2010/06/12 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
jQuery技巧之让任何组件都支持类似DOM的事件管理
2016/04/05 Javascript
Es6 写的文件import 起来解决方案详解
2016/12/13 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
jQuery实现碰到边缘反弹的动画效果
2018/02/24 jQuery
浅谈js闭包理解
2019/03/28 Javascript
python实现的一只从百度开始不断搜索的小爬虫
2013/08/13 Python
python3抓取中文网页的方法
2015/07/28 Python
Python中datetime模块参考手册
2017/01/13 Python
python对DICOM图像的读取方法详解
2017/07/17 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
2018/12/21 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
tensorflow之tf.record实现存浮点数数组
2020/02/17 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
三分钟演讲稿事例
2014/03/03 职场文书
四年级小学生评语
2014/12/26 职场文书
党小组推荐意见
2015/06/02 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
干部理论学习心得体会
2016/01/21 职场文书
导游词之崇武古城
2019/10/07 职场文书
springboot如何接收application/x-www-form-urlencoded类型的请求
2021/11/02 Java/Android
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
Python保存并浏览用户的历史记录
2022/04/29 Python