JavaScriptクックブック 第1章

JavaScriptクックブック

JavaScriptクックブック

本棚でずっと眠っていたJavaScriptクックブックをちょっとだけ読んでみたのでした。

レシピ1.6 文字列が存在し、空でないことを調べる

の、ちょっとアレンジ版というか、劣化版というか。


恥ずかしながらObject#valueOfって何に使うんだろうと思っていたのですが、
プリミティブ型の値を出力してくれるんですね。

console.log(typeof (new String('aaa')).valueOf());  // string
console.log(typeof new String('aaa'));              // object
console.log(typeof (new Number(100)).valueOf());    // number
console.log(typeof new Number(100));                // object
console.log(typeof (new Boolean(true)).valueOf());  // boolean
console.log(typeof new Boolean(true));              // object

そもそもクラスとして生成することないけど……
でもまあ、そういう可能性もあるので、このレシピではvalueOfでそれがStringかどうかを見ています。(以下のコードは自作のもので、本に載っているものではありません)

function isString(str) {
  return (
    typeof str === 'string' || (str.valueOf && typeof str.valueOf() === 'string')
  );
}

……てかStringで強制キャストすればいいような、ってちょっと思ったけどそれは違うか。


知らないことがまだまだ多くて、もっともっと精進しないと。