Javascript 中,数字 0 为假,非0 均为真

在条件判断运算 == 中的转换规则是这样的:

  1. 如果比较的两者中有布尔值(Boolean),会把 Boolean 先转换为对应的 Number,即 0 和 1,然后进行比较。

  2. 如果比较的双方中有一方为 Number,一方为 String时,会把 String 通过 Number() 方法转换为数字,然后进行比较。

  3. 如果比较的双方中有一方为 Boolean,一方为 String时,则会将空字符串""转换为 false,除此外的一切字符串转换为 true,然后进行比较。

  4. 如果比较的双方中有一方为 Number,一方为Object时,则会调用 valueOf 方法将Object转换为数字,然后进行比较。

隐式类型转换会给我们造成很多麻烦,那么该怎么避免呢?

建议在所有使用条件判断的时候都使用全等运算符 === 来进行条件判断。全等运算符会先进行数据类型判断,并且不会发生隐式类型转换。

转载于:https://www.cnblogs.com/phen/p/5437854.html

js条件判断时隐式类型转换相关推荐

  1. oracle c op,ORACLE中内部函数SYS_OP_C2C和隐式类型转换

    什么是SYS_OP_C2C呢?官方的介绍如下: SYS_OP_C2C is an internal function which does an implicit conversion of varc ...

  2. Mysql隐式类型转换

    概述 在开发规范中,我们往往会要求研发避免在where条件中出现隐式类型转换,这么要求大概有以下两方面的原因: 隐式类型转换可能导致索引失效: 隐式类型转换可能产生非预期的结果. 何为隐式转换:即在w ...

  3. html中隐式转换成数字,详解JS中的隐式类型转换

    JS中隐式类型转换 JS中的数据类型 JS中的数据类型分为两大类: 1.基本数据类型: 1.String 字符串 表示一段文本,例如:人的姓名.地址等 2.Number 数值 3.Boolean 布尔 ...

  4. js中的隐式类型转换有哪些

    目录 一.隐式类型转换条件有哪些 二.== 的隐式类型转换 三.+ 的隐式类型转换 四.object 的隐式类型转换 1.探讨 object 的隐式转换执行顺序 2.探讨 Symbol.toPrimi ...

  5. js类型转换(隐式类型转换显式类型转换)

    我们需要了解任何计算都只能在相同的数据类型之间执行.如果我们强制JavaScript执行执行一些操作,例如在字符串中添加一个数字,在这种情况下,js编译器会默认将数字更改为字符串类型,然后将两者连接起 ...

  6. JS强制类型转换和隐式类型转换

    一.隐式类型转换 隐式类型转换会自动根据运算符进行类型转换.隐式类型转换的情况主要有以下几种. 如果表达式中同时存在字符串类型和数字类型的操作数,而运算符使用加号+,此时 JavaScript 会自动 ...

  7. JavaScript隐式类型转换

    JavaScript隐式类型转换 基本数据类型 ECMAScript 一共定义了七种 build-in types,其中六种为 Primitive Value,Null, Undefined,Stri ...

  8. 《MySQL tips:隐式类型转换与隐式字符编码转换对查询效率的影响》

    维护一个交易系统,交易记录表tradelog包含交易流水号(tradeid).交易员id(operator).交易时间(t_modified)等字段. create table 'tradelog' ...

  9. int转换为cstring_PostgreSQL 隐式类型转换探秘

    个人简介 何小栋, 从事产品研发和架构设计工作,对Oracle.PostgreSQL有深入研究,ITPUB数据库版块资深版主.现就职于广州云图数据技术有限公司,系统架构师,博客:http://blog ...

最新文章

  1. Redis数据介绍与指令大全
  2. 逻辑地址、线性地址、物理地址和虚拟地址
  3. 安营扎寨【我与51CTO的故事】
  4. python 解析xml 文件: SAX方式
  5. 关于解决vue.js中组件的template内容不能换行的问题
  6. ProjectorShadow 和 ShadowMap对比
  7. 转:Tomcat启动失败 提示Server Tomcat v7.0 Server at localhost failed to start.六种解决方法
  8. android在程序中打开另一个程序
  9. 解决SQL SERVER 2000挂起的问题
  10. NOIP2001题目汇总
  11. SQL不同类型分组排序
  12. 可转债数据一览表集思录_可转债交易常用的一些工具与手法 支独秀 股票大作手回忆录 自己常看的可转债数据网站: 集思录:网页链接 富投网:网页链接 可转债新债申购还不是闭着眼睛申... - 雪球...
  13. Intelligent information retrieval(智能信息检索综述)
  14. Class6:初学数据库之MySQL基础操作
  15. K8S查看容器日志、进入容器内部
  16. springboot+dubbo+tomcat部署出错问题
  17. 语义版本号(Semantic Versioning)
  18. 病案系统实施-基本知识-持续更新
  19. 数据库中间件Mycat诞生记2
  20. 大白兔启动盘做好后重做系统

热门文章

  1. 子进程中获取父进程id_进程全家桶,看这一篇就够了 | 原力计划
  2. ovirt 双机_ovirt kvm嵌套虚拟化
  3. es 模糊查询_ES系列11:Term-level queries 之 3种模糊查询和terms_set query
  4. c语言基础教程吕答案,全国计算机等级考试二级教程C语言程序设计课后习题答案.docx...
  5. videojs重播_vue2.0 vue-video-player 直播hls 回放mp4
  6. 点击home键_iPhone小技巧:无Home键iPhone11如何强制重启?
  7. Ubuntu 添加用户
  8. 有趣的JS 一行代码 偷取所有图片
  9. JavaScript学习笔记:语句
  10. 3.过滤——高斯滤波器之Matlab、Octave实战、保持两个高斯直行_5