備忘録

Windows,Linux,Mac,AWS,VMware,ネットワークなどの検証

console.log(~+ ~)と console.log(~ , ~)の違い /Javascript

普段は console.log(~ + ~); のように区切り文字に+をよく使用しているが、
console.log(~ , ~); のように区切り文字に,を使用する例を見たので、動作を調べてみる。
※動作確認: Node.js v6.10.0 Google Chrome

// 文字列'ABC'に、promiseオブジェクトを連結してコンソールに表示してみる。
function promiseFunc(){
  return new Promise((resolve, reject) =>{
    resolve();
  });
}

console.log('ABC' + promiseFunc()); // ABC[object Promise]

console.log('ABC', promiseFunc());  // ABC Promise { undefined }

区切り文字に+を使用した場合、promiseオブジェクトも文字列として連結されている。
一方、区切り文字に,を使用した場合、promiseオブジェクトはオブジェクトとして連結されている。

Node.jsにて実行した場合はいずれも文字列のように見えるが、
Google Chromeのコンソールで見ると,で区切った方はオブジェクトとして渡されているのがわかる。

f:id:tksfj17:20180110233634p:plain
Google Chrome コンソールにて確認