Javascript中String的valueOf方法

今天看了Javascript的基础教程,其中说了一个关于typeof的问题。typeof运算符的做用就是返回一个变量的类型,若是变量是一个数字,则返回number。javascript

若是是字符串,则返回string,java

布尔类型则返回boolean,函数

函数则返回function,spa

若是变量是null或者其余Javascript对象,就返回object。对象

未定义就返回undefined.教程

若是要判断变量存在,并且是一个字符串的话;给出的判断语句是:ip

if( (typeof unknownVariable != "undefined") && ( typeof unknownVariable.valueOf() == "string") )    {    ...    }内存

第一个先判断变量有没有定义,若是没有定义的话就不用判断第二个条件了,而第二个条件中为何要加上valueOf这个运算符呢?我上网找了一下Java的string方面的知识;字符串

发现原来string类型有两种定义方式,一种是直接定义,例如:String str ="javascript";这种至关于直接量,若是没有valueOf的话,用typeof返回的也是string;而另一种是经过声明定义的,例如:String str = new String("javascript");这种在没有valueOf的状况下,用typeof返回到的就是object,也就是说不能识别为字符串类型。所以为了不这种状况,要加入valueOf运算符。string

书中给的解释是说,使用valueOf返回的是一个字符串直接量。其实也就是取得string的原始值。

因此在Java中咱们通常定义string的直接量。这样还能够防止内存中太多冗余的string对象。

相关文章
相关标签/搜索