2014-09-29 46 views
1

是否可以区分作为参数传递的文字字符串与引用JavaScript中的字符串值的变量?我认为这是不可能的,但也许有办法。从引用字符串的变量中区分字符串参数

例如:

var myString = 'some string' 

function whoIsThat(x){ 
    alert(typeof(x)) 
}; 

whoIsThat(myString) // differentiate this ? 
whoIsThat('some string') // from this ? 
+2

不,没有。你为什么想要?顺便说一下,'typeof'是一个运算符,而不是一个函数,在这种情况下不需要括号。 – 2014-09-29 12:23:41

+0

我与@torazaburo - 你为什么在意? – CodingIntrigue 2014-09-29 12:24:33

+2

不包含引用字符串的文字字符串和变量。无论如何,在这种情况下,它被变量'x'所取代。尽管你可以使用String对象。 'var myString = new String('some string');' – 2014-09-29 12:25:51

回答

0

如果只作为参数传递到变量的文字字符串和文字字符串:

var myString = 'some string' 
'some string' 

那么,没有办法告诉它们之间的差异。还要注意,无论如何这两个都传递给本地变量x。虽然如果您稍作修改并改为使用String对象。那么区别很简单:

var myString = new String('some string'); 

function whoIsThat(x){ 
    alert(typeof(x)) 
}; 

whoIsThat(myString);  // -> object 
whoIsThat('some string'); // -> string