浅谈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 相关文章推荐
用jQuery打造TabPanel效果代码
May 22 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
Feb 21 Javascript
javascript中定义类的方法汇总
Dec 28 Javascript
举例详解Python中smtplib模块处理电子邮件的使用
Jun 24 Javascript
JS实现横向拉伸动感伸缩菜单效果代码
Sep 04 Javascript
详解angularjs中的隔离作用域理解以及绑定策略
May 31 Javascript
vue实现登录后页面跳转到之前页面
Jan 07 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
Aug 27 Javascript
JavaScript进制转换实现方法解析
Jan 18 Javascript
JQuery事件冒泡和默认行为代码实例
May 13 jQuery
vue+elementUI动态增加表单项并添加验证的代码详解
Dec 17 Vue.js
微信小程序开发探究
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/21 PHP
PHP基础学习小结
2011/04/17 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
PHP图片处理之图片旋转和图片翻转实例
2014/11/19 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
收集的10个免费的jQuery相册
2011/02/26 Javascript
Textbox控件注册回车事件及触发按钮提交事件具体实现
2013/03/04 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
JavaScript实现自动对页面上敏感词进行屏蔽的方法
2015/07/27 Javascript
JavaScript常用本地对象小结
2016/03/28 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
BootStrap select2 动态改变值的方法
2017/02/10 Javascript
js实现拖拽功能
2017/03/01 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
优雅地使用loading(推荐)
2019/04/20 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
Python open读写文件实现脚本
2008/09/06 Python
Python实现XML文件解析的示例代码
2018/02/05 Python
Python读取properties配置文件操作示例
2018/03/29 Python
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
Python提取频域特征知识点浅析
2019/03/04 Python
浅谈Python中的异常和JSON读写数据的实现
2020/02/27 Python
浅谈Python描述数据结构之KMP篇
2020/09/06 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
德国传统玻璃制造商:Cristalica
2018/04/23 全球购物
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
日期和时间问题
2015/01/04 面试题
关于迟到的检讨书
2014/01/26 职场文书
设计专业自荐信
2014/06/19 职场文书
教师职位说明书
2014/07/29 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
红白喜事主持词
2015/07/06 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书