Javascript 未捕获引用错误:if语句中赋值的左侧无效
我收到以下错误消息: 未捕获引用错误:赋值中的左侧无效 script.js:37 visaType script.js:37(匿名函数) 代码如下: script.js:Javascript 未捕获引用错误:if语句中赋值的左侧无效,javascript,Javascript,我收到以下错误消息: 未捕获引用错误:赋值中的左侧无效 script.js:37 visaType script.js:37(匿名函数) 代码如下: script.js: function visaType() { var visaOld = $('#inputVisaOld').val(); var visaNew = $('#inputVisaNew').val(); if (visaOld = 'Studying Mandarin Chinese' &
function visaType() {
var visaOld = $('#inputVisaOld').val();
var visaNew = $('#inputVisaNew').val();
if (visaOld = 'Studying Mandarin Chinese' && visaNew = 'Foreign Student') {
// the error message points here
return '<div class="alert alert-info" Documents for FR -> FS</div>';
} else if (visaOld = 'Tourism' && visaNew = 'Joining Taiwananese Family') {
return '<div class="alert alert-info" Documents for P -> TS</div>';
} else {
return '<div class="alert alert-error>Not allowed to change</div>';
}
}
<div class="form-group">
<label for="inputVisa">Current Visa <span class="text-muted">(Optional)</span></label>
<input type="text" class="form-control" id="inputVisaOld" placeholder="Enter Current Visa">
</div>
<div class="form-group">
<label for="inputVisa">New Visa</label>
<input type="text" class="form-control" id="inputVisaNew" placeholder="Enter Visa to Apply">
</div>
函数visaType(){
var visaOld=$('#inputVisaOld').val();
var visaNew=$('#inputVisaNew').val();
if(visaOld=‘学习汉语普通话’和visaNew=‘外国学生’){
//错误消息指向这里
返回“FS”;
}否则如果(visaOld=‘旅游’和visaNew=‘加入台湾家庭’){
返回“TS”;
}否则{
return“visaOld=”学习汉语“
有一个=
符号,这意味着你在应该比较的时候分配:visaOld===”学习汉语“
它在几个地方,而不仅仅是那个地方。visaOld='studing standard Chinese'
有一个=
符号,这意味着你应该在比较的时候分配:visaOld=='studing standard Chinese'
它在几个地方,而不仅仅是那个地方。Javascript中的比较运算符是=
,而不是=
。因此它应该是:
if (visaOld == 'Studying Mandarin Chinese' && visaNew == 'Foreign Student') {
// the error message points here
return '<div class="alert alert-info" Documents for FR -> FS</div>';
} else if (visaOld == 'Tourism' && visaNew == 'Joining Taiwananese Family') {
return '<div class="alert alert-info" Documents for P -> TS</div>';
} else {
return '<div class="alert alert-error>Not allowed to change</div>';
}
if(visaOld==“学习汉语”和&visaNew==“外国学生”){
//错误消息指向这里
返回“FS”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
返回“TS”;
}否则{
return'Javascript中的比较运算符是=
,而不是=
。因此它应该是:
if (visaOld == 'Studying Mandarin Chinese' && visaNew == 'Foreign Student') {
// the error message points here
return '<div class="alert alert-info" Documents for FR -> FS</div>';
} else if (visaOld == 'Tourism' && visaNew == 'Joining Taiwananese Family') {
return '<div class="alert alert-info" Documents for P -> TS</div>';
} else {
return '<div class="alert alert-error>Not allowed to change</div>';
}
if(visaOld==“学习汉语”和&visaNew==“外国学生”){
//错误消息指向这里
返回“FS”;
}否则如果(visaOld==‘旅游’和visaNew==‘加入台湾家庭’){
返回“TS”;
}否则{
返回“编程中最古老的错误之一。您的作业应该是比较。使用==
而不是=
,它会起作用
当前代码出现语法错误的原因:
赋值(=
)在运算符优先级中位于&&
之后。因此,您的语句将按如下方式进行计算
if (visaOld = ('Studying Mandarin Chinese' && visaNew) = 'Foreign Student') {
使用括号强制执行所需内容
if ((visaOld = 'Studying Mandarin Chinese') && (visaNew = 'Foreign Student')) {
但是请记住,不建议在if语句中赋值,也不是您想要的。编程中最古老的错误之一。您的赋值应该是比较。使用==
而不是=
,它会起作用
当前代码出现语法错误的原因:
赋值(=
)在运算符优先级中位于&&
之后。因此,您的语句将按如下方式进行计算
if (visaOld = ('Studying Mandarin Chinese' && visaNew) = 'Foreign Student') {
使用括号强制执行所需内容
if ((visaOld = 'Studying Mandarin Chinese') && (visaNew = 'Foreign Student')) {
但是请记住,不建议在if语句中赋值,也不是您想要的。@phenomnomnominal没有必要使用==
进行这些比较。两个原因如何:可维护性和意图的清晰性?显然,您不必在这里使用==
,但一般认为最好这样做。这是你的风格,不要强加于人。如果你想发表评论,就这样做,但不要像那样编辑别人的答案。一般来说,编辑答案时不应该更改语义。除了修改格式或明显的打字错误以外,任何事都应该作为评论来做。@Phenomnominal请记住,并不是每个人都同意这个观点se毛毯(Crockford)规则如下:始终使用严格相等,永远不要使用new
,永远不要使用pre-increment。只有当代码确实错误时,才应该编辑代码。@phenomnomnominal没有必要使用===
进行这些比较。两个原因如何:可维护性和意图的清晰性?显然,您不必在这里使用==
,但这是正确的人们普遍认为这样做更好。这是你的风格,不要强加给别人。如果你想发表评论,就发表评论,但不要那样编辑别人的答案。一般来说,编辑答案时不应该更改语义。除了修改格式或明显的错别字以外,任何事情都应该作为评论来完成。@Phenomnom Reme请记住,并非所有人都同意这些笼统的(Crockford)规则,如:始终使用严格相等,从不使用new
,从不使用pre-increment。只有当代码确实错误时,才应编辑代码。