2013-04-29 2 views
1

я обнаружил, что упаковка различные заявления в скобках вернет последний:В чем заключаются скобки операторов JavaScript в круглых скобках?

(34892,47691876297,2000)    => 2000 
('test',73,document.createElement('p')) => <p></p> 

И я также узнал, что все операторы выполняются в любом случае:

(console.log('test'), console.log('test2'), console.log('test3'), 6) 

зарегистрирует:

test 
test2 
test3 

И результат будет 6.

Однако, я также обнаружил, что некоторые утверждения не могут быть использованы:

(throw new Error(), 10)   => SyntaxError: Unexpected token throw 
(if (1) console.log('test'), 5) => SyntaxError: Unexpected token if 

Итак, какова суть этого скобка-разделителями нотации? Вы можете легко выполнить все инструкции, а затем использовать значение последнего оператора. Для чего это? Я использую его неправильно?

+0

Ряд языков работают таким образом; Scala работает таким образом. –

+0

@RobertHarvey Ну, в чем смысл этого? Я не понимаю, почему вы не можете просто выполнять все заявления. – Doorknob

+0

«Бросок» кажется очевидным. Второй пример предполагает, что список принимает только базовые выражения, а не сложные конструкции кода. –

ответ

4

То есть запятая оператор :)

Это позволяет вычислять выражения слева направо, возвращая результат последнего операнда (который, в вашем случае, не хранится где-нибудь, и это вполне допустимо).

Ссылка:

 Смежные вопросы

  • Нет связанных вопросов^_^