JavaScript三元运算符用法说明

JavaScript三元运算符用法说明,javascript,Javascript,我正在编写一个小脚本,使用三元运算符来表示简短的“if”语句。代码如下: self.checked ? psswrd[z].type = 'text' : psswrd[z].type = 'password'; 这本质上是说,如果检查了输入,则将输入类型设置为“text”,否则将其设置为密码。我觉得这是错误的,因为我在重复我自己 理想情况下,我想这样做: psswrd[z].type ? 'text' : 'password'; 但是如何检查正在检查的“如果”部分?我对这种三元方法还不熟悉

我正在编写一个小脚本,使用三元运算符来表示简短的“if”语句。代码如下:

self.checked ? psswrd[z].type = 'text' : psswrd[z].type = 'password';
这本质上是说,如果检查了输入,则将输入类型设置为“text”,否则将其设置为密码。我觉得这是错误的,因为我在重复我自己

理想情况下,我想这样做:

psswrd[z].type ? 'text' : 'password';
但是如何检查正在检查的“如果”部分?我对这种三元方法还不熟悉,所以解释会有很大帮助,谢谢

完整循环(如果需要):

for ( var j = 0; j < checkz.length; j++ ) {

            var self = checkz[j];
            self.onchange = function () {
                for ( var z = 0; z < psswrd.length; z++ ) {

                    self.checked ? psswrd[z].type = 'text' : psswrd[z].type = 'password';

                }
            }

        }
干脆

 psswrd[z].type = self.checked ? 'text' : 'password';
这也更具可读性。我建议更普遍地避免使用三元运算符替换if语句,除非代码看起来足够清晰。

三元运算符:与[condition]类似使用?[code1]:[code2]计算条件,如果计算结果为true,则返回code1,否则返回code2。代码1和代码2都将被评估,只是其中一个,这是永远不会发生的。这就是为什么

var abc=test==null?不,是测试

如果测试为空或不为空,则两者都可以工作

运算符通常用于a=条件?code1:code2,那么它相当于

if (condition)
  a = code1;
else 
  a = code2;
if (self.checked)
  psswrd[z].type = 'text';
else 
  psswrd[z].type = 'password';
在您的情况下,您必须使用

psswrd[z]。类型=自检?“文本':'密码'

这是无与伦比的

if (condition)
  a = code1;
else 
  a = code2;
if (self.checked)
  psswrd[z].type = 'text';
else 
  psswrd[z].type = 'password';
一般用途的微小变化只是条件?code1:code2什么会导致code1或code2被执行,返回值将被丢弃。
或者您可以在另一个assign中使用它,比如var num=17+测试-17:25,如果测试评估为真,则将num设置为0;如果评估为假,则将num设置为42。

Ah,现在获取它。它必须在作业中使用!谢谢你,这真的很有帮助。是的,我读到你只是为了简单而使用它,我认为这一个足够简单。当你在作业中使用它时,它很好。这是最经典的用法。