多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# JavaScript 中的真值和假值 > 原文: [https://howtodoinjava.com/typescript/truthy-and-falsy/](https://howtodoinjava.com/typescript/truthy-and-falsy/) 在 JavaScript 中,真值是等于布尔值`true`的表达式,而假值则是等于布尔值`false`的表达式。 与其他语言不同,`true`和`false`值不限于`boolean`数据类型和比较。 它可以具有许多其他形式。 让我们了解什么使 JavaScript 中的真假表达式成为事实。 ## 假值 javascript 中共有 **6 个假值/表达式**。 我将使用此函数来检查值是真值还是假值。 ```java function testTruthyFalsy (val) { return val ? console.log('truthy') : console.log('falsy'); } ``` 布尔‘`false`’ 显然布尔值`false`是`false`。 ```java testTruthyFalsy (false); //Prints 'falsy' ``` 空字符串,即`''` 任何空字符串都将被求值为`false`。 ```java testTruthyFalsy (''); //Prints 'falsy' ``` `undefined` 任何`undefined`变量将等于`false`。 ```java var my_var = undefined; testTruthyFalsy (my_var); //Prints 'falsy' ``` `null` 任何`null`变量将等于`false`。 ```java var my_var = null; testTruthyFalsy (my_var); //Prints 'falsy' ``` `NaN` 结果为`NaN`(不是数字)的任何数值表达式都将等于`false`。 ```java testTruthyFalsy (NaN); //Prints 'falsy' ``` 数字零,即 +0 或 -0 任何结果为零(`+0`或`-0`)的数值表达式都将等于`false`。 ```java testTruthyFalsy ( 2 - 2 ); //Prints 'falsy' testTruthyFalsy ( 0 ); //Prints 'falsy' ``` ## 真值 除了上面列出的假值以外的任何表达式或值 - 被认为是真值。 例如: ```java function testTruthyFalsy (val) { return val ? console.log('truthy') : console.log('falsy'); } testTruthy(true); // truthy testTruthy(false); // falsy testTruthy(new Boolean(false)); // truthy (object is always true) testTruthy(''); // falsy testTruthy('Packt'); // truthy testTruthy(new String('')); // true (object is always true) testTruthy(1); // truthy testTruthy(-1); // truthy testTruthy(NaN); // falsy testTruthy(new Number(NaN)); // truthy (object is always true) testTruthy({}); // truthy (object is always true) var obj = { name: 'John' }; testTruthy(obj); // truthy testTruthy(obj.name); // truthy ``` 将我的问题放在评论部分。 学习愉快!