7
Tại sao mã tiếp theo là mã Javascript hợp lệ?Tại sao mã này hợp lệ: "(1, eval) ('this')"
var global = (1,eval)('this');
alert(global);
Tại sao mã tiếp theo là mã Javascript hợp lệ?Tại sao mã này hợp lệ: "(1, eval) ('this')"
var global = (1,eval)('this');
alert(global);
Đó là do comma operator trả về toán hạng thứ hai (và đánh giá cả hai).
Các mã trong câu hỏi của bạn là tương đương với:
1;
var global = eval('this');
alert(global);
buồn nhưng sự thật ... – powtac
bạn có thể giải thích hoặc có thể là một số liên kết sẽ hữu ích quá, thực sự bối rối. –
@Sheikh, tôi đã liên kết tới tài liệu MDN trong câu trả lời của tôi :) Về cơ bản, '(1, eval)' áp dụng toán tử dấu phẩy ',' cho '1' và' eval'. Toán tử đánh giá '1', sau đó đánh giá và trả về' eval'. Do đó, 'foo = (1, eval) (cái gì đó)' tương đương với '1; foo = eval (cái gì đó); –