2012-06-06 46 views
2

对于变量x = 5,我怎么知道它是数字5或字符'5'?JS中的数值变量

顺便说一句,在JS中,字符遵循ASCII表?然后我可以操纵一个字符变量。例如,如果变量x是字符a,我可以使x = x + 1使它变成字符b吗?

+0

不要在同一个问题中提出两个不同的问题。至少粗略浏览谷歌可能会帮助你回答自己的问题。 –

+0

关于你问题的第二部分,如果你已经知道会发生什么,你为什么不试试看看会发生什么? – haylem

+0

我认为像这样的问题会得到大多数“谷歌它”和大量downvotes,我很惊讶地看到下面的一堆答案,但... –

回答

2

看是否x是5号,如与字符串“5”相反,可以使用标识运算符:

if (x === 5) { 
} 

标识不会执行任何隐式转换;只有两个操作数没有任何转换时相等,它才会返回true。


例如,如果变量x是字符a,我可以做X = X + 1,使其 人物B? x = x + 1

号将1转换为字符串,进行字符串连接,并返回 “A1”

+0

三重等号?它应该是双重的? – OneZero

+0

对类型和值进行三重检查,这比使用两个'=' –

1

刚刚得到的变量类型:

console.log(typeof '5'); // Returns 'string'; 
console.log(typeof 5); // Returns 'number'; 

关于你的第二个问题,不,这是行不通的:

console.log('b' + 1); // Returns 'b1' 
+0

“var x = 5”如何?是数字还是字符? – OneZero

+0

@ user1229490:我觉得你有点困惑。 'var x = 5; console.log(typeof x); // outputs'number'' – haylem

+0

您将它定义为一个数字,因此它是一个数字? – Blender

1

要检查一个变量是一个数字:

if (typeof x == 'number') 
    // x is a number 

这样做X = X + 1当x = b时,将导致字符串'a1';

+0

严格的检查,严格地说,变量没有类型,它们有一个值。变量的值有一个[Type](http://es5.github.com/#x8)。 – RobG

1

可以使用

typeof x; 

它返回说明变量的类型,如numberstringobject的字符串。

为了得到一个字符的字符代码,使用charCodeAt

var mystring = 'a'; 
mystring.charCodeAt(0); 

而要得到增强字符代码字符,使用String.fromCharCode

var nextLetter = String.fromCharCode(mystring.charCodeAt(0) + 1); // returns "b" 

这从创建一个新字符串从mystring中的第一个字符开始递增的char代码。

0

如果您的var x不是整数,这是将其更改为整数的最佳方法。

要改变X为整数

x = parseInt(x); 

您如何增加任何价值的x,例如:

x = x + 2; 

既然我们已经改变了X为整数,我们现在能够确定是否这等于5

if(x == 5){ 
//Your Codes Here 
}