javascript中if条件何时为true呢? 除了有一些能直接比较出结果的表达式之外,对于直接将变量放入if 括号中,何时为true,何时为false呢。下面看具体例子。

var a;if(a){alert("true");}else{alert("false");}

运行结果为 false

var a=1;if(a){alert("true");}else{alert("false");}

运行结果为 true

var a=0;if(a){alert("true");}else{alert("false");}

运行结果为 false

var a=true;//或者a="true"if(a){alert("true");}else{alert("false");}

运行结果为 true

var a=false;//或者a="false"if(a){alert("true");}else{alert("false");}

运行结果为 false

此处的大小写是不区分的。

var a="";if(a){alert("true");}else{alert("false");}

运行结果为 false

var a="1212";//非空字符串,并且不为"false"
// 注意包含空格的字符串也是非空的 ("   ")if(a){alert("true");}else{alert("false");}

运行结果为 true

其本质就是js中强制类型转换的结果,也就是其他非bool类型转换成bool类型,js处理如下:

对于var a;

1. 如果a未赋值,则为null,会被强制转换为false;

2, 如果a为数值类型的话, 0 或0.000 为false,其他非0值为true;

3. 如果a为字符串的话, “” 和“false” 会被转换成false, 注意“false” 是不区分大小写的,就是说“False”,"FAlse"等都会被转换成false。

其他字符串被转换成true 包括含有空格的空字符串(“     ”)。

4.如果a是其他类型:数组,function,对象,则会被转换成true;

有一种a为function需要说明,看下面例子:

var a=function(){};if( a()){alert("true");}else{alert("false");}

结果为false.

原因是没有返回结果的函数值的返回结果是 undefined。而undefined 会被当做false 处理。

注意: if(a) 和if(a()) 是完全不同的。if(a)是会一直返回true的,因为他是将函数强制转换。但是if((a))是将函数的返回结果强制转换。

javascript bool 强制类型转换相关推荐

  1. JavaScript的强制类型转换

    强制类型转换 强制类型转换是指将一个数据类型强制转换为其他数据类型 主要是将其他的数据类型转换为:String,Number,Boolean 将其他类型转换为String类型 调用被转换数据类型的to ...

  2. javascript中强制类型转换详解+总结

    javascript中一共有六种类型:Number,String,Boolean,Undefined,Object,function.可以用typeof来查看声明的变量的类型.注意,typeof是操作 ...

  3. Javascript 强制类型转换函数

    1. Boolean(value):把值转换成Boolean类型: 2. Nnumber(value):把值转换成数字(整型或浮点数): 3. String(value):把值转换成字符串. 我们先来 ...

  4. char强制类型转换为int_为强制类型转换正名

    为强制类型转换正名​www.yexiaochen.com 引子 强制类型转换是JavaScript开发人员最头疼的问题之一, 它常被诟病为语言设计上的一个缺陷, 太危险, 应该束之高阁. 作为开发人员 ...

  5. JavaScript 中的强制类型转换

    JavaScript 作为一个动态编程语言,其中的数据类型会随着程序运行而动态改变.对于很多人来说,强制类型转换很容易造成程序出错,而要记住所有的转换方式又是一件不那么容易的事情.比如下面这张 Jav ...

  6. JavaScript强制类型转换(一)String字符串型

    JavaScript强制类型转换(一) 概念 将其他的数据类型转换作为String字符串型 方式一:调用toString()方法 方式二:调用String()函数 方式三:拼接字符串 概念 类型转换主 ...

  7. 《你不知道的JavaScript》整理(六)——强制类型转换

    JavaScript中通常分为两种类型转换,"隐式强制类型转换"(implicit coercion)和"显式强制类型转换"(explicit coercion ...

  8. JavaScript基础02【强制类型转换(String Number Boolean) 其它进制数】

    学习地址: 谷粒学院---尚硅谷 尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版JavaScrip ...

  9. javascript 强制类型转换

    来源:http://www.diybl.com/course/1_web/javascript/jsjs/2007114/83289.html 强制类型转换      使用强制类型转换(type ca ...

最新文章

  1. 天大和武大计算机考研,985大学排名出炉,天大和武大并列第10,榜首是哪所?...
  2. linux下搭建git服务器
  3. 克莱因瓶为何永远无法装满?科学家发现:宇宙或许就是克莱因瓶!
  4. PLSQL_性能优化系列15_Oracle Explain Plan解析计划解读
  5. VMware NSX组件构建矩阵
  6. 排序算法Java实现(快速排序)
  7. 20190915:(leetcode习题)对称二叉树
  8. CentOS connect:fail, reason: connect server 22 port fail
  9. 【图神经网络】向往的GAT(图注意力模型)
  10. Hi,Let's Get Started,Mr Qu
  11. 机器学习(一) Eviews下载及安装教程
  12. oracle strsplit函数,oracle splitstr 函数
  13. vmplayer7安装OSX10.10
  14. qt html ui,DSkin 的WebUI开发模式介绍,Html快速开发Winform的UI
  15. message: Content type 'multipart/form-data;boundary=----WebKitFormBoundaryksbSBUwTCB6eHI3j;charse
  16. JavaSE学习笔记-08
  17. JVM内存模型和性能调优:阿里巴巴Arthas调优工具:什么是Arthas- 第43篇
  18. FORM 6i 安装
  19. docker创建(run)容器后容器自动关闭
  20. 美国邮编及电话号码区域查询

热门文章

  1. 生物信息学必读100篇论文
  2. vim+Vundle+vim-autoformat+astyle格式化代码
  3. 【机器学习】逻辑回归(LogisticRegression)原理与实战
  4. 无人驾驶公司大全(原无人驾驶龙虎榜)
  5. 小程序实现商城案例(赋源码)
  6. python:输入一个整数正序各个输出,并判断输出位数
  7. excel波士顿矩阵怎么做_excel矩阵图怎么做
  8. C++17 文件与目录操作 <filesystem>
  9. 基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.9.0版)
  10. CList POSITION