Javascript 无法使用字符串检查相等的数字

Javascript 无法使用字符串检查相等的数字,javascript,if-statement,Javascript,If Statement,我有一个简单的逻辑检查。在我的代码中 $scope.seatMap.PlaneTypeCode = "175" 然而,当我设置 $scope.seatMap.PlaneTypeCode === "175" //my debugger returns <b>false </b> parseInt($scope.seatMap.PlaneTypeCode,10) ===175 // equals 17 ******改变了我对此的反应 if (parseInt(col.

我有一个简单的逻辑检查。在我的代码中

$scope.seatMap.PlaneTypeCode = "175"
然而,当我设置

$scope.seatMap.PlaneTypeCode === "175" //my debugger returns <b>false </b>

parseInt($scope.seatMap.PlaneTypeCode,10) ===175  // equals 17
******改变了我对此的反应

if (parseInt(col.name,10) ===4 && $scope.seatMap.PlaneTypeCode ==="175" && $scope.TripSummary) {
            col.available = false;
        }  // still getting false

您可以使用==代替===

$scope.seatMap.PlaneTypeCode == "175"

请参阅了解更多信息

您可以使用==而不是===

$scope.seatMap.PlaneTypeCode == "175"

请参阅以了解更多信息,这是一种最佳做法,您应该使用它。查看@Joyson提供的参考资料

您不需要parseInt中的,10,因为它是默认值

var PlaneTypeCode = "175";
if (parseInt(PlaneTypeCode) === 175) {
  console.log('equal');
}
如果PlaneTypeCode是一个代码,可以包含除数字以外的任何内容,则更好的比较方法是:

if (PlaneTypeCode === "175")

==是一种最佳实践,您应该使用它。查看@Joyson提供的参考资料

您不需要parseInt中的,10,因为它是默认值

var PlaneTypeCode = "175";
if (parseInt(PlaneTypeCode) === 175) {
  console.log('equal');
}
如果PlaneTypeCode是一个代码,可以包含除数字以外的任何内容,则更好的比较方法是:

if (PlaneTypeCode === "175")

使用angular.equals($scope.seatMap.PlaneTypeCode,“175”)

使用angular.equals($scope.seatMap.PlaneTypeCode,“175”)

第一步是找出控制台.log($scope.seatMap.PlaneTypeCode)的内容显示在控制台中。您不必猜测。但是,当我设置:您没有使用赋值运算符,其中
=
是赋值时,请尝试
$scope.seatMap.PlaneTypeCode=“175”
而不是
$scope.seatMap.PlaneTypeCode==“175”
它返回“175”。我在这里遗漏了一些简单的东西。只是不确定是什么。第一步是找出是什么
console.log($scope.seatMap.PlaneTypeCode)显示在控制台中。您不必猜测。但是,当我设置:您没有使用赋值运算符,其中
=
是赋值时,请尝试
$scope.seatMap.PlaneTypeCode=“175”
而不是
$scope.seatMap.PlaneTypeCode==“175”
它返回“175”。我在这里遗漏了一些简单的东西。只是不确定是什么。这对我来说也是错误的。我一开始就试过了。谢谢,那对我来说也是假的。我一开始就试过了。谢谢。我知道这应该是基本javascript的情况,但我在这一点上是错误的,已经有一段时间了。我肯定遗漏了什么。如果(PlaneTypeCode==“175”)会更好,因为在这个答案的第一部分中,变量是一个字符串,后面是parseInt,比较值将被转换为一个数字-因此,应继续使用严格comparisonA基数上的fail,因为并非所有正在使用的浏览器都符合ES5,ES5引入了默认值10。而且,
0x
仍将指示基数16。使用严格的平等可以引入尽可能多的问题,在这种情况下是不合逻辑的。如果PlaneTypeCode是一个字符串,并且需要严格的相等,那么应该使用
PlaneTypeCode====“175”
,因为
parseInt(PlaneTypeCode===175
相当于
PlaneTypeCode==175
(即
=
中隐含的转换是使用parseInt显式的,这有什么意义?)我知道这应该是基本javascript的情况,但我在这一点上是错误的,已经有一段时间了。我肯定遗漏了什么。如果(PlaneTypeCode==“175”)会更好,因为在这个答案的第一部分中,变量是一个字符串,后面是parseInt,比较值将被转换为一个数字-因此,应继续使用严格comparisonA基数上的fail,因为并非所有正在使用的浏览器都符合ES5,ES5引入了默认值10。而且,
0x
仍将指示基数16。使用严格的平等可以引入尽可能多的问题,在这种情况下是不合逻辑的。如果PlaneTypeCode是一个字符串,并且需要严格的相等,那么应该使用
PlaneTypeCode====“175”
,因为
parseInt(PlaneTypeCode===175
相当于
PlaneTypeCode==175
(即
=
中隐含的转换是使用parseInt显式的,这有什么意义?)。