javascript中的if

来源:互联网 发布:牛顿环实验数据 编辑:程序博客网 时间:2024/04/30 06:07

block 1: 我们首先来看一段代码:

if(a){    console.log("I can enter!")}else{    console.log("I can not enter!")}

这段代码的输出如下:

I can enter!

这个a是个什么类型?他的值是多少?请花十秒钟时间想想这个问题。

block 2:我们接着看下一段代码:

var m1 = {a: "false", name: "Kent"};if (m1.a) {    console.log("I am " + m1.name)} else {    console.log("Who am I?")}

这段代码的输出如下:

I am Kent

block 3: 想到了点什么呢?我们接着往下看。

var m1 = {a: 100, name: "Kent"};if (m1.a) {    console.log("It is " + m1.name + " again!");} else {    console.log("Who am I?")}

这段代码的输出如下:

It is Kent again!

如果输出全在你的预料之内,那请无视这篇文章吧,反之则继续往下看吧。

javascript中的if只有少数几种情况下才会为false,我们尤其需要注意使用单个变量作为if表达式的情况。

javascript有几种类型:

  ● undefined——未定义;

  ● boolean——布尔值;

  ● string——字符串;

  ● number——数值;

  ● object——对象或null;

  ● function——函数;

其中undefined,boolean,string,number是基础类型或者叫简单类型,object,function为复杂类型。像数组啊什么的都是object类型。
在这里我就不离题太远了,以上六种类型,仅存在四种情况if为false。

  1. 数据类型为undefined时,if结果永远为false
  2. 当数据类型为boolean类型时,值为false时,if结果为false
  3. 当数据类型为object时,值为null时,if结果为false
  4. 负数为false

所以在写if判断的时候要先清楚,我这个变量是什么类型,而不能像在写java代码时只考虑他是个boolean类型的情况,理论上判断一个值是否为空,或者一个标签里的某个值或对象是否存在时,我们只需要一个

if(xx)

就可以搞定了,而不用去判断if(xx!=null)或if(xx!=”undefined”)之类的。

顺便说下json属性的的几种数据类型:

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null

所以从json中取值做逻辑判断我们要稍微注意点了。

之前做的总结有误,仅以下几种情况为false,以下引自javaScript权威指南

  • undefined
  • null
  • 0
  • -0
  • NaN
  • “” //空字符串

所有其他值,包括所有对象(数组)都会转换成true。

0 0
原创粉丝点击