Ответ 1
Разрыв строки вызывает "undefined" во второй функции. JavaScript не требует точек с запятой во многих случаях и просто принимает их в определенных контекстах.
Вот jsfiddle
Полный код:
function foo1(){
return {msg: "hello1"};
}
function foo2(){
return
{msg: "hello2"};
}
// output = "foo1 = {"msg":"hello1"}"
console.log('foo1 = ' , JSON.stringify(foo1()));
//output = " foo2 = undefined "
console.log('foo2 = ' , JSON.stringify(foo2()));
Разница между ними заключается в том, что в foo2 {msg: 'hello'}
находится в своей собственной новой строке. Я ожидал, что парсер будет игнорировать пробелы?
Разрыв строки вызывает "undefined" во второй функции. JavaScript не требует точек с запятой во многих случаях и просто принимает их в определенных контекстах.