Understanding JavaScript Truthy and Falsy

2019-01-02 21:29发布

Can someone please explain JavaScript Truthy and Falsy, using the below sample data. I have read other threads but still confused.

var a = 0;

var a = 10 == 5;

var a = 1; 

var a = -1;

From my understanding, I believe that var a = 1; is the only truthy and the rest are falsy - is this correct?

标签: javascript
3条回答
只靠听说
2楼-- · 2019-01-02 21:46

There's a simple way to check, which you can use now and forever:

function truthyOrFalsy(a) {
    return a ? "truthy" : "falsy";
}

To wit:

> truthyOrFalsy(0)
"falsy"
> truthyOrFalsy(10 == 5)
"falsy"
> truthyOrFalsy(1)
"truthy"
> truthyOrFalsy(-1)
"truthy"

Also see a list of all falsey values in JavaScript.

查看更多
千与千寻千般痛.
3楼-- · 2019-01-02 21:48

From my understanding, I believe that var a = 1; is the only truthy and the rest are falsy’s - is this correct?

No.

  1. var a = 0;

    Number zero is falsy. However, note that the string zero "0" is truthy.

  2. var a = 10 == 5;

    This is same as var a = (10 == 5);, so this is falsy.

  3. var a = 1;

    var a = -1;

    Any non-zero number including negative numbers is truthy.

Quoting from MDN

In JavaScript, a truthy value is a value that translates to true when evaluated in a Boolean context. All values are truthy unless they are defined as falsy (i.e., except for false, 0, "", null, undefined, and NaN).

List of falsy values in JavaScript:From MDN

  1. false
  2. null
  3. undefined
  4. 0
  5. NaN
  6. ''
  7. document.all
查看更多
看淡一切
4楼-- · 2019-01-02 22:02

Truthy -> Value that resolve to true in boolean context

Falsy -> Value that resolve to false in boolean context


For better understanding, falsy values is given below.

  1. false
  2. 0
  3. empty
  4. string
  5. null
  6. undefined
  7. NaN
查看更多
登录 后发表回答