只想检查哪种是条件变量分配的更好方法
第一种方法
Run Code Online (Sandbox Code Playgroud)if (true) { var myVariable = 'True'; } else { var myVariable = 'False'; }
第二种方法
Run Code Online (Sandbox Code Playgroud)var myVariable = 'False'; if (true) { myVariable = 'True'; }
我实际上更喜欢第二个没有任何特定技术原因.你们有什么感想?
dku*_*mar 82
试试这个
var myVariable = (true condition) ? "true" : "false"
Run Code Online (Sandbox Code Playgroud)
Kev*_* Ng 16
我知道有两种方法可以通过条件声明变量的值.
方法1:如果条件的计算结果为true,则列左侧的值将分配给变量.如果条件评估为false,则右侧的条件将分配给变量.您还可以将许多条件嵌套到一个语句中.
var a = (true)? "true" : "false";
Run Code Online (Sandbox Code Playgroud)
方法1的嵌套示例:将变量A值更改为0,1,2和负值以查看语句将如何生成结果.
var a = 1;
var b = a > 0? (a === 1? "A is 1" : "A is not 1") : (a === 0? "A is zero" : "A is negative");
Run Code Online (Sandbox Code Playgroud)
方法2:在这个方法中,如果||的左边的值 等于零,假,空,未定义或空字符串,然后右侧的值将分配给变量.如果||左边的值 如果不等于零,false,null undefined或空字符串,则左侧的值将分配给变量.
虽然左边的值可以是JS未定义的值来评估条件,但必须声明变量,否则将生成异常.
var a = 0;
var b = a || "Another value";
Run Code Online (Sandbox Code Playgroud)
你可以做一个三元组,它更短(并且没有花苞的大括号):
var myVariable = (true) ? 'True' : 'False';
Run Code Online (Sandbox Code Playgroud)
另一个很酷的事情是您可以根据条件进行多项分配:
let [long_str, short_str] = a.length > b.length ? [a, b] : [b, a]
Run Code Online (Sandbox Code Playgroud)
为了完整起见,除了这里提到的所有其他方法之外,还有另一种方法,那就是使用查找表。
假设您有许多可能的值,您可以以声明方式配置 Map 而不是使用if, switchorternary语句。
Object map = {
key1: 'value1',
key2: 'value2',
keyX: 'valueX'
};
var myVariable = map[myInput];
Run Code Online (Sandbox Code Playgroud)
这甚至适用于布尔值:
Object map = { true: 'value1', false: 'value2 };
var myVariable = map[myBoolean];
Run Code Online (Sandbox Code Playgroud)
对于布尔值,您可能会以“正常”方式进行操作,尽管使用专门为此设计的逻辑运算符。尽管有时它可能很有用,例如:
请注意,使用查找图的优点和使用函数变量(闭包)的优点之间存在一些重叠。
另一种方法是利用逻辑运算符返回值的能力。
let isAnimal = false;
let isPlant = true;
let thing = isAnimal && 'animal' || isPlant && 'plant' || 'something else';
console.log(thing);Run Code Online (Sandbox Code Playgroud)
在上面的代码中,当标志之一为 trueisAnimal或 时isPlant,将返回其旁边的字符串。这是因为&&和||导致其操作数之一的值:
受本文启发的答案:https : //mariusschulz.com/blog/the-and-and-or-operators-in-javascript
PS:仅供学习使用。不要在您的生产代码中使用这种方法,让您和您的同事生活更艰难。
小智 5
当您仅在variabel中存储true false时,使用第三种方法
var myVariable =(condition_written_in_if);
Run Code Online (Sandbox Code Playgroud)
我也更喜欢第二个选项,没有技术原因,但为了易于阅读代码,代码的可读性非常重要。
如果您看到第二个选项,从处理的角度来看,只会执行一项检查,节省了一些非常分钟的处理时间,因此在第二种情况下只有一项检查。
| 归档时间: |
|
| 查看次数: |
52408 次 |
| 最近记录: |