Javascript 使用length函数返回未定义的

Javascript 使用length函数返回未定义的,javascript,angularjs,Javascript,Angularjs,我试图检查我的变量是否只有一个长度 我是这样做的: var n = new Date(); $scope.h = n.getHours(); $scope.m = n.getMinutes(); console.log($scope.h.length) // returns undefined if($scope.h.length < 2 && $scope.m.length < 2 ) { $scope.hm = $scope.h * 10 + "" +

我试图检查我的变量是否只有一个长度

我是这样做的:

var n = new Date();
$scope.h = n.getHours();
$scope.m = n.getMinutes();

console.log($scope.h.length) // returns undefined

if($scope.h.length < 2 && $scope.m.length < 2 ) {
    $scope.hm = $scope.h * 10 + "" + $scope.m * 10;
    console.log($scope.hm);
}
var n=新日期();
$scope.h=n.getHours();
$scope.m=n.getMinutes();
console.log($scope.h.length)//返回未定义的
如果($scope.h.长度<2&$scope.m.长度<2){
$scope.hm=$scope.h*10++$scope.m*10;
console.log($scope.hm);
}
但是$scope.h.length返回未定义。为什么? 我该如何做得更好呢?

您使用的是返回一个
整数
,因此不能直接在其上使用
.length

解决方法是在计算长度之前使用
toString()
函数

您可以使用
=“”+h

var n=新日期();
var h=n.getHours();
var m=n.getMinutes();
var hString=“”+h;
var mString=m.toString();
控制台日志(hs字符串长度);
console.log(mString.length)
您正在使用thta返回一个
整数
,因此不能直接在其上使用
.length

解决方法是在计算长度之前使用
toString()
函数

您可以使用
=“”+h

var n=新日期();
var h=n.getHours();
var m=n.getMinutes();
var hString=“”+h;
var mString=m.toString();
控制台日志(hs字符串长度);

console.log(mString.length)getHours()返回一个数字。数字没有长度属性。首先尝试使用$scope.h.toString()将数字转换为字符串。

getHours()返回一个数字。数字没有长度属性。首先尝试使用$scope.h.toString()将数字转换为字符串。

您不需要检查案例中的长度

if($scope.h < 10 && $scope.m < 10 ) {
if($scope.h<10&$scope.m<10){

您不需要检查案例中的长度

if($scope.h < 10 && $scope.m < 10 ) {
if($scope.h<10&$scope.m<10){

您正在尝试检查整数的长度,这就是获取未定义的getHours()返回整数的原因getHours()返回整数由于getHours()返回整数,您可以在整数上访问length属性,这是另一种选择吗?如果($scope.h.length<2&$scope.m.length<2),您在这里尝试什么你能解释一下你的条件吗?然后可以说你是否需要你的长度条件吗?正如@bhanu.cs所说的,它返回一个整数。看看plunker,你正试图检查整数的长度,这就是你得到未定义的getHours()返回整数的原因,因为getHours()返回一个整数,您可以在整数上使用access length属性,这是一个可选的方法?如果($scope.h.length<2&$scope.m.length<2)您可以解释您的条件,那么可以说您是否需要您的长度条件?正如@bhanu.cs所说,它返回一个整数。请查看plunker