浅谈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 相关文章推荐
js 多浏览器分别判断代码
Apr 01 Javascript
XENON基于JSON变种
Jul 27 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
May 19 Javascript
html的DOM中document对象forms集合用法实例
Jan 21 Javascript
jQuery实现简单的日期输入格式化控件
Mar 12 Javascript
把Node.js程序加入服务实现随机启动
Jun 25 Javascript
详解js图片轮播效果实现原理
Dec 17 Javascript
基于jQuery Tipso插件实现消息提示框特效
Mar 16 Javascript
js实现定时进度条完成后切换图片
Jan 04 Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 Javascript
如何HttpServletRequest文件对象并储存
Aug 14 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 需要掌握的东西 不做浮躁的人
2009/12/28 PHP
又一个PHP实现的冒泡排序算法分享
2014/08/21 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
php+xml实现在线英文词典之添加词条的方法
2015/01/23 PHP
Laravel中Trait的用法实例详解
2016/03/16 PHP
php批量修改表结构实例
2017/05/24 PHP
php制作圆形用户头像的实例_自定义封装类源代码
2017/09/18 PHP
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
js实现字符串转日期格式的方法
2015/05/20 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
JavaScript动态插入CSS的方法
2015/12/10 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
使用layui实现树形结构的方法
2019/09/20 Javascript
Python读取Excel的方法实例分析
2015/07/11 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python实现二维数组的对角线遍历
2019/03/02 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
python中如何使用insert函数
2020/01/09 Python
浅谈matplotlib 绘制梯度下降求解过程
2020/07/12 Python
详解python with 上下文管理器
2020/09/02 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
CSS3中box-shadow的用法介绍
2015/07/15 HTML / CSS
中国酒类在线零售网站:酒仙网
2016/08/20 全球购物
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
2014年会演讲稿范文
2014/01/06 职场文书
学生党员的自我评价范文
2014/03/01 职场文书
公司演讲稿开场白
2014/08/25 职场文书
立项申请报告范本
2015/05/15 职场文书
观看安全警示教育片心得体会
2016/01/15 职场文书
大学社团活动总结怎么写
2019/06/21 职场文书
小学语文教师竞聘演讲稿范文
2019/08/09 职场文书