<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; JS: справочник отличий Microsoft JScript от стандарта ES3 (англ, PDF)]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15347&amp;type=atom" />
	<updated>2020-05-31T13:00:58Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=15347</id>
		<entry>
			<title type="html"><![CDATA[Re: JS: справочник отличий Microsoft JScript от стандарта ES3 (англ, PDF)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=139841#p139841" />
			<content type="html"><![CDATA[<p><strong>sand123</strong><br />Насколько я помню try-catch в JScript не создает отдельный scope. &quot;Скопы&quot; могут быть только глобальными или задаются внутри функции. Собственно вот и объяснение этого странного поведения. Что касается приведенного Вами кода, то <strong>x</strong> у Вас явно не декларирован, значит он в глобальном скопе. Чтобы ограничить область видимости, то надо явно использовать <strong>var</strong> в нужном скопе.</p>]]></content>
			<author>
				<name><![CDATA[JSmаn]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24434</uri>
			</author>
			<updated>2020-05-31T13:00:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=139841#p139841</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: справочник отличий Microsoft JScript от стандарта ES3 (англ, PDF)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=139429#p139429" />
			<content type="html"><![CDATA[<p><strong>wisgest</strong><br />Собственно, как я и обнаружил эту особенность - блок с <strong>catch(e)</strong> перезаписал значение переменной <strong>e</strong> во внешней области видимости, чего я никак не ожидал.</p>]]></content>
			<author>
				<name><![CDATA[sand123]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40759</uri>
			</author>
			<updated>2020-05-10T12:41:23Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=139429#p139429</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: JS: справочник отличий Microsoft JScript от стандарта ES3 (англ, PDF)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=139426#p139426" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>sand123 пишет:</cite><blockquote><p>Например, переменная с ошибкой доступна во внешней области видимости вне блока try-catch</p></blockquote></div><p>Точнее в JScript при вызове catch объект ошибки присваивается переменной, указанной в скобках, т.е. это может быть предварительно определённая не обязательно глобальная переменная. Например, даже так:<br /></p><div class="codebox"><pre><code>var obj = {x: null};
with (obj) {
	try {
		throw &quot;test&quot;;
	} catch (x) {}
}
WScript.Echo(obj.x);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2020-05-10T05:02:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=139426#p139426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[JS: справочник отличий Microsoft JScript от стандарта ES3 (англ, PDF)]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=139369#p139369" />
			<content type="html"><![CDATA[<p>JScript — сценарный язык программирования компании Microsoft, являющийся реализацией стандарта ECMAScript.<br />По ссылке - подробная справка (на английском) в чем реализация Microsoft отличается от стандарта. Некоторые вещи мне показались странными в поведении, если искать в интернете просто про синтаксис ES3 javascript - такие тонкости нигде не всплывают.</p><p>Например, переменная с ошибкой доступна во внешней области видимости вне блока try-catch<br /></p><div class="codebox"><pre><code>
function foo() { 
	try { 
		throw &quot;hello&quot;; 
	} catch(x) { 
		WScript.Echo(x); 
	}; 
	WScript.Echo(x); // x should not be visible here 
}; 

foo(); 

Output: 
hellohello 
</code></pre></div><p><a href="https://regmedia.co.uk/2007/10/31/jscriptdeviationsfromes3.pdf">https://regmedia.co.uk/2007/10/31/jscri … romes3.pdf</a></p>]]></content>
			<author>
				<name><![CDATA[sand123]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=40759</uri>
			</author>
			<updated>2020-05-08T06:25:28Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=139369#p139369</id>
		</entry>
</feed>
