我试图initialize
JavaScript
中的空数组,但它会返回一些内容。然后我尝试使用typescript
允许initialize
空数组。但我想在JavaScript中使用它,我该怎么办?
有人可以帮忙吗?
提前致谢。
javascript代码:
var emptyArr = [];
var emptyString = "";
var emptyNumber;
var numberWithZeroValue = 0;
var emptyBoolean = false;
console.log("emptyArr: " + !!emptyArr);
console.log("emptyString: " + !!emptyString);
console.log("emptyNumber: " + !!emptyNumber);
console.log("numberWithZeroValue: " + !!numberWithZeroValue);
console.log("emptyBoolean: " + !!emptyBoolean);
输出:
emptyArr: true //it returning somthing in it.
emptyString: false
emptyNumber: false
numberWithZeroValue: false
emptyBoolean: false
javascript
不允许声明变量类型,因此我尝试使用typescript
。
打字稿代码:
var emptyArr: Array;
var emptyString: String = "";
var emptyNumber: Number;
var numberWithZeroValue: Number = 0;
var emptyBoolean: Boolean = false;
console.log("emptyArr: " + !!emptyArr);
console.log("emptyString: " + !!emptyString);
console.log("emptyNumber: " + !!emptyNumber);
console.log("numberWithZeroValue: " + !!numberWithZeroValue);
console.log("emptyBoolean: " + !!emptyBoolean);
输出:
emptyArr: false //it returning empty array.
emptyString: false
emptyNumber: false
numberWithZeroValue: false
emptyBoolean: false
注意: typescript
返回一个数组为空,但javascript
会返回一些内容。
更新:
我不想检查array.length,因为我的变量是String
,Number
,Array
,Boolean
等类型的任何类型。我想检查它比如return !!myVariable
答案 0 :(得分:4)
您确实创建了一个空的 Array
,您的创建代码没有任何问题。
Javascript中的Array
被视为为空 ,如果它没有元素。
你在Javascript中检查一个空数组,如下所示:
console.log("emptyArr: " + !!emptyArr.length);
let emptyArr = []; // or new Array();
console.log("emptyArr: " + !!emptyArr.length);
if (emptyArr.length) {
console.log("Array is not empty");
} else {
console.log("Array is empty");
}
由于以下值在Javascript
中的布尔表达式中计算为false
0
,""
,undefined
,null
,false
而不是if (!!emptyArr.length)
,您只需在Javascript中转到if (emptyArr.length)
即可。这些值(false
除外)在Javascript中称为 falsy 。
答案 1 :(得分:1)
这是在javascript中检查空数组的正确方法
var emptyArr = [];
var emptyString = "";
var emptyNumber;
var numberWithZeroValue = 0;
var emptyBoolean = false;
if(emptyArr.length == 0){
console.log(" its an emptyArr");
}
console.log("emptyString: " + !!emptyString);
console.log("emptyNumber: " + !!emptyNumber);
console.log("numberWithZeroValue: " + !!numberWithZeroValue);
console.log("emptyBoolean: " + !!emptyBoolean);

答案 2 :(得分:0)
你可以像这样在typescript中声明数组。
var alphas:any[];
答案 3 :(得分:0)
也许你想知道为什么vanillaJS数组初始化等于true
和typescript false
。
这是因为打字稿的转换器。它将var emptyArr: Array;
转换为var emptyArr;
,现在您的结果与第三个vanillaJS行(var emptyNumber;
)相同。