Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获引用错误:if语句中赋值的左侧无效_Javascript - Fatal编程技术网

Javascript 未捕获引用错误:if语句中赋值的左侧无效

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' &

我收到以下错误消息:

未捕获引用错误:赋值中的左侧无效 script.js:37 visaType script.js:37(匿名函数)

代码如下:

script.js:

  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。只有当代码确实错误时,才应编辑代码。