javascript数据类型转换

代码拓虹客
• 阅读 1020

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地址

https://github.com/lanpangzhi

http://blog.langpz.com

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Karen110 Karen110
3年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
凯特林 凯特林
4年前
如何避免JavaScript类型转换
你是否经历过JavaScript中的某些值比较没有得到预期结果的情况?看下面的情况:即使0结果为真,if条件也没有根据结果执行。有没有想过为什么会这样?本文主要说明这些值比较的工作原理以及影响它们的因素。在深入解释之前,大家要熟悉一个概念:类型转换。什么是JavaScript类型转换?这也称为类型强制。对于不熟悉此概念的人来说,它只是将值从一种
Jacquelyn38 Jacquelyn38
4年前
面试官:JavaScript的数据类型你了解多少?
前言作为JavaScript的入门知识点,Js数据类型在整个JavaScript的学习过程中其实尤为重要。最常见的是边界数据类型条件判断问题。我们将通过这几个方面来了解数据类型:概念检测方法转换方法概念undefined、Null、Boolean、String、Number、Symbol、BigInt为基础类型;Ob
Souleigh ✨ Souleigh ✨
4年前
安利几个JS开发小技巧
开发小技巧<br/1、转换布尔值除了常规的布尔值true和false之外,JavaScript还将所有其他值视为truthy或falsy。除非另有定义,否则JavaScript中的所有值都是truthy,除了0,“”,null,undefined,NaN,当然还有false,这些都是falsy我们可以通过使用负算运算符轻松地
Wesley13 Wesley13
3年前
CAST()函数可以进行数据类型的转换。
CAST()函数可以进行数据类型的转换。CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔。以下例子均通过本人测试。一、转换列或值语法:cast(列名/值as数据类型)用例:1)、转换列\将empno的类型(number)转换为varchar2类型。selectcast(empnoasv
Stella981 Stella981
3年前
Js——第一课
数据类型:要特别注意相等运算符。JavaScript在设计时,有两种比较运算符:第一种是比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;第二种是比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。由于JavaScript这个设计缺陷,_不要_使用比较,始终
Stella981 Stella981
3年前
Golang学习
//将布尔值转换为字符串true或falsefuncFormatBool(bbool)string//将字符串转换为布尔值//它接受真值:1,t,T,TRUE,true,True//它接受假值:0,f,F,FALSE,false,False//其它任何值都返回一个错误。funcParseBool(st
小万哥 小万哥
1年前
C# 布尔值和条件语句:入门指南和实用示例
C布尔值在编程中,通常需要一个只能有两个值之一的数据类型,比如:是/否开/关真/假为此,C有一个bool数据类型,可以取true或false的值。布尔值使用bool关键字声明布尔类型,只能取true或false的值:示例:csharpboolisCShar
待兔 待兔
11个月前
JS的数据类型你了解多少?
JS的数据类型你了解多少?作为JavaScript的⼊⻔级知识点,JS数据类型在整个JavaScript的学习过程中其实尤为重要。因为在JavaScript编程中,经常会遇到边界数据类型条件判断问题,很多代码只有在某种特定的数据类型下,才能可靠地执⾏。希望
美凌格栋栋酱 美凌格栋栋酱
4个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(