Firefoxのコンソール出力画面でString.fromCharCode(160)【 】が半角スペースになる


検証環境

  • Firefox 56
  • Windows7
  • Chrome 61

症状

たとえば

<div>test&nbsp;test</div>

というHTMLがあった時、

document.querySelector('div').innerText

には
test (&nbsp;)test
と格納されている。
これを

console.log(document.querySelector('div').innerText)

とすると、出力は
test (半角スペース)test
になっている。

なので、一度コンソールに出力した結果をコピペし、生のinnerTextとコンソールで比較してみると

document.querySelector('div').innerText === 'test test'

これはfalseになる。

コンソールの出力履歴に出たときに変換されるらしく、面白い現象が現れる。

一度trueになった式をコピペすると、falseになるのである。

なお、Chromeでは発生しなかった。


E2EテストでHeadlessChromeのテストコードとほぼ同じコードでFirefoxの開発者ツールで実行→コピペでexpectedコードを作成していたら、assertが通過しなかったことから発覚。

自動テストがChromeなら最初からChromeですればよかった…