2016-06-28 34 views
1

我是JavaScript新手,正在使用Netbeans编写一个简单的网站。由于JavaScript是动态类型语言,我想知道如何在不确定的情况下找出变量的类型。如何找出JavaScript中的变量类型?

例如,如何在下面的代码中找到变量类型emailAddressdomainPart

function getEmailAndDomainParts(){ 
       var emailAddress = document.getElementById("EmailAddress").value; 
       var emailPart = emailAddress.substring(0, emailAddress.indexOf("@")); 
       var domainPart = emailAddress.substring(emailAddress.indexOf("@") + 1); 

       document.getElementById("Email").value = emailPart; 
       document.getElementById("Domain").value = domainPart; 
      } 
+0

你不能找出*变量*的类型,因为它们没有类型,但是你可以使用'typeof'运算符在变量中找出* value *的类型。说了这么多,**所有的值都是字符串。**如果'emailAddress'没有包含字符串,就不能使用'.substring()','.substring()'总会返回一个串。 – nnnnnn

+0

您是否尝试过使用typeof关键字?例如: typeof emailAddress –

+2

请允许先看看,这个问题已经被回答很多次了 –

回答

1
// test data 
var myArray = ['a', 'b', 'c']; 

// the usual typeof isn't very useful 
alert(typeof myArray); 

// this instance of method tests the array 
// to see if it is an instance of the 'Array' 
// constructor, which it is! 
alert(myArray instanceof Array) 

click here

+0

您也可以使用'Array.isArray(myArray)' – Rajesh

+0

这并没有真正回答这个问题。你不会使用'instanceof'来测试字符串,数字和布尔值(即使这样做,你必须多次调用它,直到你找到一个匹配项)。 – nnnnnn

1

可以使用的typeof: typeof操作符返回一个字符串,表明未计算的操作数的类型

+0

“未评估操作数”是什么意思? – nnnnnn

1

正如在评论中指出,你不能检查的类型的变量,但您可以使用typeof()检查变量值的类型:

x = "hello"; 
y = 123; 
z = true; 
console.log(typeof(x)); //Will return "string" 
console.log(typeof(y)); //Will return "number" 
console.log(typeof(z)); //Will return "boolean" 
+1

请注意'typeof'是一个操作符,而不是一个函数。 (括号不会伤害,但不需要。) – nnnnnn