Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как использовать "use strict"? (https://javascript.ru/forum/misc/21100-kak-ispolzovat-use-strict.html)

Riim 29.08.2011 14:09

Как использовать "use strict"?
 
Пишу:
(function(){ 
	"use strict";
	eval('alert("1");'); 
})();


ошибок в консоли нет. При apply(null) тоже. Получилось при восмеричном числе:
"use strict";
012;

> Uncaught SyntaxError: Octal literals are not allowed in strict mode.

Какой-то он недоделанный или я что-то не так понял?

UPD: поддержка браузером полная (судя по http://java-script.limewebs.com/stri...st_hosted.html).

Octane 29.08.2011 15:31

А вот еще странно: раньше встречал кучу упоминаний, что в strict-режиме можно получить ссылку на global, были примеры функций, возвращающей this, а теперь при обычном вызове функции this вообще undefined

"use strict";
(function () {
	alert(typeof this);//undefined
}());

B@rmaley.e><e 29.08.2011 15:33

Octane, по приведённой Вами ссылке
Цитата:

function undefinedThis() {"use strict";
    alert(this); // undefined
}
undefinedThis.call();


Octane 29.08.2011 15:40

Неудачно нагуглил)

x-yuri 30.08.2011 16:55

Цитата:

Сообщение от Octane
раньше встречал кучу упоминаний, что в strict-режиме можно получить ссылку на global, были примеры функций, возвращающей this,

так а как они это делали? Я вот такой вариант видел:
"use strict";
var global = (function(){ return this || (1,eval)('this') })();

правда не понял, зачем там 1

B@rmaley.e><e 30.08.2011 16:58

Цитата:

Сообщение от x-yuri
правда не понял, зачем там 1

Для открепления eval'а от контекста.
(function(){
  alert([eval(this), (1, eval)('this')])
}).call(5)


Часовой пояс GMT +3, время: 17:01.