何気なく書かれているけど、console.log('got %s', foo);という部分があり、おや?と思った。
もしかして、Node.js 以外でも使えたりする? と調査。
まず、Operaは使えなかったので除外。
| Code | GoogleChorme | Firefox |
|---|---|---|
| console.log("%s", "hoge") | hoge | hoge |
| console.log("%s", "hoge", "foo") | hoge foo | hoge foo |
| console.log("%s", "hoge", {foo:"FOO"}) | hoge ▸Object | hoge ({foo:"FOO"}) |
| console.log("%d", 10) | 10 | 10 |
| console.log("%d", 10.5) | 10.5 | 10 |
| console.log("%f", 10.5) | 10.5 | 10.5 |
| console.log("%d", "hoge") | hoge | NaN |
| console.log("%%", "hoge") | % hoge | %% hoge |
| console.log("%o", 100) | 100 | 100 |
| console.log("%x", 100) | [object Object] | %x 100 |
| console.log("%g", 100) | [object Object] | %g 100 |
な感じ。%03dとか桁あわせ相当のものはChromeにもFirefoxにもなかったので載せていない。
[object Object]になるまあブラウザ間でまちまちなので、どれも共通した出力を望む場合は使わない方が無難そう。
id:Syunpei さんが console オブジェクトの標準化について言及してた。