Javascript:如何使用JavaScript类型转换检查我的变量是否为空?

时间:2018-03-31 10:47:54

标签: javascript arrays typescript

我试图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,因为我的变量是StringNumberArrayBoolean等类型的任何类型。我想检查它比如return !!myVariable

4 个答案:

答案 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""undefinednullfalse

而不是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;)相同。