Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2011, 14:09
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Как использовать "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).

Последний раз редактировалось Riim, 29.08.2011 в 14:11.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2011, 15:31
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

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

"use strict";
(function () {
	alert(typeof this);//undefined
}());
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2011, 15:33
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Octane, по приведённой Вами ссылке
Цитата:
function undefinedThis() {"use strict";
    alert(this); // undefined
}
undefinedThis.call();
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2011, 15:40
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Неудачно нагуглил)
Ответить с цитированием
  #5 (permalink)  
Старый 30.08.2011, 16:55
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Octane
раньше встречал кучу упоминаний, что в strict-режиме можно получить ссылку на global, были примеры функций, возвращающей this,
так а как они это делали? Я вот такой вариант видел:
"use strict";
var global = (function(){ return this || (1,eval)('this') })();

правда не понял, зачем там 1
Ответить с цитированием
  #6 (permalink)  
Старый 30.08.2011, 16:58
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от x-yuri
правда не понял, зачем там 1
Для открепления eval'а от контекста.
(function(){
  alert([eval(this), (1, eval)('this')])
}).call(5)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как организовать RichEdit arma Элементы интерфейса 2 18.02.2010 14:57
Как использовать innerText yvarvara Общие вопросы Javascript 29 09.11.2009 05:54
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56