Подтвердить что ты не робот

Функция Javascript не возвращает объект, если существует разрыв строки между оператором return и объектом?

Вот 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'} находится в своей собственной новой строке. Я ожидал, что парсер будет игнорировать пробелы?

4b9b3361

Ответ 1

Разрыв строки вызывает "undefined" во второй функции. JavaScript не требует точек с запятой во многих случаях и просто принимает их в определенных контекстах.