Javascript中String的valueOf方法

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

如果是字符串,则返回string,

布尔类型则返回boolean,

函数则返回function,

如果变量是null或者其他Javascript对象,就返回object。

未定义就返回undefined.

如果要判断变量存在,而且是一个字符串的话;给出的判断语句是:

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运算符。

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

所以在Java中我们一般定义string的直接量。这样还可以防止内存中太多冗余的string对象。

转载于:https://my.oschina.net/wangkaibin/blog/294426

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值