conditional ternary operator is giving error: Expected an assignment or function call and instead saw an expression when setting a variable
conditional ternary operator is giving error: Expected an assignment or function call and instead saw an expression when setting a variable
我想设置一个参数来知道调用某个端口时使用什么 uri。
这是我的代码:
var portConfig = '443';
(portConfig === '443') ? uri = 'wss://' : uri = 'http://';
console.log(uri);
var Ip = uri + "hereis.myurl.com";
var port = portConfig;
console.log(Ip);
我收到以下错误:
Expected an assignment or function call and instead saw an expression
我什至将 uri 设置在函数 testA testB 中,但出现了同样的错误。我已经阅读了这个问题,它看起来像是一个错误的错误。我应该改用 if 语句吗——哪个工作正常?
每个文档的正确方法是:
uri = (portConfig === '443') ? 'wss://' : 'http://';
它确实需要赋值,而不是表达式。
事实上,您使用的方式可以被浏览器吃掉和解析而不会出错,因为赋值 return 是分配的值。但这不是推荐的方法,因为三元运算符被设计为 return 值(它们总是这样做,即使你之后不使用该值),与 if()
条件不同,它是像使用 if()
.
那样使用它被认为是不明智的
你应该这样写
uri = (portConfig === '443') ? 'wss://' : 'http://';
我想设置一个参数来知道调用某个端口时使用什么 uri。
这是我的代码:
var portConfig = '443';
(portConfig === '443') ? uri = 'wss://' : uri = 'http://';
console.log(uri);
var Ip = uri + "hereis.myurl.com";
var port = portConfig;
console.log(Ip);
我收到以下错误:
Expected an assignment or function call and instead saw an expression
我什至将 uri 设置在函数 testA testB 中,但出现了同样的错误。我已经阅读了这个问题,它看起来像是一个错误的错误。我应该改用 if 语句吗——哪个工作正常?
每个文档的正确方法是:
uri = (portConfig === '443') ? 'wss://' : 'http://';
它确实需要赋值,而不是表达式。
事实上,您使用的方式可以被浏览器吃掉和解析而不会出错,因为赋值 return 是分配的值。但这不是推荐的方法,因为三元运算符被设计为 return 值(它们总是这样做,即使你之后不使用该值),与 if()
条件不同,它是像使用 if()
.
你应该这样写
uri = (portConfig === '443') ? 'wss://' : 'http://';