博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript数据类型转换
阅读量:5952 次
发布时间:2019-06-19

本文共 907 字,大约阅读时间需要 3 分钟。

javascript数据类型转换

在面试中经常会碰见问类型转换的问题,例如[] == false、[] == {}返回的是真还是假等等。。。

默认是false的五个值

null undefined NaN 0 ''复制代码

记住只有这五个值是假的剩下的全部是真的。

转换规则

  1. 如果是一个值判断是否是真假,除了默认是false的五个值剩下的全部是true。

  2. 如果是两个值比较是否相等,遵循如下规则。

    val1 == val2 如果两个值可能不是同一数据类型,如果是==比较的话,会默认进行数据转换。

    2.1 object == object,比较永远不相等。

    2.2 object == string 先将对象转换成字符串(调用toString方法),然后再比较。

    [] 转换成字符串 "" {} 转换成字符串 "[object Object]"复制代码

    2.3 object == boolean 先将对象转换成字符串(toString),再把字符串转换成数字(Number)、布尔值转换成数字(true 转换成 1 false 换成成 0)然后让两个数字进行比较。

    Number("") 会输出 0复制代码

    2.4 object == number 先将对象转换成字符串(toString),再把字符串转换成数字(Number),再进行比较。

    2.5 number == boolean 布尔值转换成数字,然后再比较。

    2.6 number == string 字符串转换成数字,然后再比较。

    2.7 string == boolean 都转换成数字,,然后再比较。

    2.8 null == undefined 结果是true。

    2.9 null 或者 undefined 比较另外的所有值,结果都是false,不相等。

例如:

[] == false 返回 true 2.3规则。 [] == []  返回 false 2.1规则。 2 == true 返回 false 2.5规则。复制代码

=== 三个等号还会比较数据类型。

这些规则背下来,就能完美的应付这样的面试题了,加油!

我的博客和GitHub地址

转载地址:http://pcoxx.baihongyu.com/

你可能感兴趣的文章
一个基于特征向量的近似网页去重算法——term用SVM人工提取训练,基于term的特征向量,倒排索引查询相似文档,同时利用cos计算相似度...
查看>>
[转]Newtonsoft.Json高级用法
查看>>
35个Java代码性能优化总结
查看>>
Spring+SpringMVC+MyBatis+easyUI整合基础篇(一)项目简述及技术选型介绍
查看>>
剑指offer——35复杂链表的复制
查看>>
DFI、DPI技术
查看>>
hibernate 执行存储过程 方法
查看>>
RapidIOIP核的验证方法研究_王玉欢
查看>>
崩溃日志的实例
查看>>
base64是啥原理
查看>>
字符串中去除连续相同的字符保留一个
查看>>
实战 Windows Server 2012 群集共享卷
查看>>
CSS 元素超出部分滚动, 并隐藏滚动条
查看>>
【转】文件各种上传,离不开的表单
查看>>
C#中的volatile关键字
查看>>
PHP过滤常用标签的正则表达式
查看>>
算法集锦(二)
查看>>
Unix环境高级编程(十五)高级I/O
查看>>
浅谈"n个球"和"m个盒子"之间的乱伦关系
查看>>
详解SpringMVC中Controller的方法中参数的工作原理
查看>>