<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии к записи: YUI.Lang is buggy?</title>
	<atom:link href="http://ulizko.com/posts/203/feed" rel="self" type="application/rss+xml" />
	<link>http://ulizko.com/posts/203</link>
	<description></description>
	<lastBuildDate>Fri, 12 Mar 2010 13:28:42 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Автор: Александр Улизько</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1503</link>
		<dc:creator>Александр Улизько</dc:creator>
		<pubDate>Mon, 13 Apr 2009 12:23:01 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1503</guid>
		<description>Я все же думаю, что правильнее будет такое поведение:

&lt;pre class=&quot;javascript&quot;&gt;
var a = new Number(1);
YUI.Lang.isObject(a); // true
YUI.Lang.isNumber(a); // true
&lt;/pre&gt;

Потому что &lt;code&gt;a&lt;/code&gt; в данном случае - объект, но, одновременно, позволяет выполнять над собой операции, свойственные числам.
&lt;pre lang=&quot;javascript&quot;&gt;
var a = new Number(2), b = new Number(22);

b/a; // 11
b + a; // 24
&lt;/pre&gt;</description>
		<content:encoded><![CDATA[<p>Я все же думаю, что правильнее будет такое поведение:</p>
<pre class="javascript">
var a = new Number(1);
YUI.Lang.isObject(a); // true
YUI.Lang.isNumber(a); // true
</pre>
<p>Потому что <code>a</code> в данном случае &#8211; объект, но, одновременно, позволяет выполнять над собой операции, свойственные числам.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> a <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Number<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span> b <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Number<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">22</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
b<span style="color: #339933;">/</span>a<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 11</span>
b <span style="color: #339933;">+</span> a<span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// 24</span></pre></div></div>

]]></content:encoded>
	</item>
	<item>
		<title>Автор: Степан</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1499</link>
		<dc:creator>Степан</dc:creator>
		<pubDate>Mon, 13 Apr 2009 08:40:19 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1499</guid>
		<description>Да в общем-то и спорить не о чем :) Главное, что и я и вы понимаем, что new Number() возвращает Object.

Просто я считаю, что YUI.Lang.isNumber проверяет именно тип переменной и должен возвращать true только если переменная типа Number.</description>
		<content:encoded><![CDATA[<p>Да в общем-то и спорить не о чем :) Главное, что и я и вы понимаем, что new Number() возвращает Object.</p>
<p>Просто я считаю, что YUI.Lang.isNumber проверяет именно тип переменной и должен возвращать true только если переменная типа Number.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Alexander Ulizko</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1479</link>
		<dc:creator>Alexander Ulizko</dc:creator>
		<pubDate>Fri, 10 Apr 2009 04:35:09 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1479</guid>
		<description>С одной стороны, вы правы:&lt;br&gt;&lt;code&gt;&lt;br&gt;var a = new Number();&lt;br&gt;&lt;br&gt;alert(typeof a === &#039;object&#039; &amp;&amp; a instanceof Number &amp;&amp; a instanceof Object);&lt;br&gt;// true&lt;br&gt;&lt;/code&gt;&lt;br&gt;&lt;br&gt;Получается,  Number Object это подобъект (ну, или что-то в этом роде) типа&lt;br&gt;Object.&lt;br&gt;А объект Number экземпляр встроенного объекта Number.&lt;br&gt;&lt;br&gt;И ситуация с Boolean и String симметричная.&lt;br&gt;&lt;br&gt;А с другой стороны, типов (в значении &quot;набор значений данных&quot;) все равно&lt;br&gt;шесть - Undefined, Null, Boolean, Number, String и Object. Мы это знание&lt;br&gt;получим, прочитав 8 (стр. 31)</description>
		<content:encoded><![CDATA[<p>С одной стороны, вы правы:<br /><code><br />var a = new Number();</p>
<p>alert(typeof a === &#39;object&#39; &#038;&#038; a instanceof Number &#038;&#038; a instanceof Object);<br />// true<br /></code></p>
<p>Получается,  Number Object это подобъект (ну, или что-то в этом роде) типа<br />Object.<br />А объект Number экземпляр встроенного объекта Number.</p>
<p>И ситуация с Boolean и String симметричная.</p>
<p>А с другой стороны, типов (в значении &laquo;набор значений данных&raquo;) все равно<br />шесть &#8211; Undefined, Null, Boolean, Number, String и Object. Мы это знание<br />получим, прочитав 8 (стр. 31)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: stepanvr</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1467</link>
		<dc:creator>stepanvr</dc:creator>
		<pubDate>Tue, 07 Apr 2009 18:28:02 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1467</guid>
		<description>&lt;a href=&quot;http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf&quot; rel=&quot;nofollow&quot;&gt;http://www.ecma-international.org/publications/...&lt;/a&gt;&lt;br&gt;&lt;br&gt;Не поленился посмотреть спецификацию:&lt;br&gt;&lt;br&gt;4.3.2 Primitive Value&lt;br&gt;A primitive value is a member of one of the types Undefined, Null, Boolean, Number, or String. A primitive value is a datum that is represented directly at the lowest level of the language implementation.&lt;br&gt;&lt;br&gt;4.3.3 Object&lt;br&gt;An object is a member of the type Object. It is an unordered collection of properties each of which&lt;br&gt;contains a primitive value, object, or function. A function stored in a property of an object is called a&lt;br&gt;method.&lt;br&gt;&lt;br&gt;...&lt;br&gt;&lt;br&gt;4.3.20 Number Type&lt;br&gt;The type Number is a set of values representing numbers. In ECMAScript, the set of values represents the double-precision 64-bit format IEEE 754 values including the special “Not-a-Number” (NaN) values, positive infinity, and negative infinity.&lt;br&gt;&lt;br&gt;4.3.21 Number Object&lt;br&gt;A Number object is a member of the type Object and is an instance of the built-in Number object. That is, a Number object is created by using the Number constructor in a new expression, supplying a number as an argument. The resulting object has an implicit (unnamed) property that is the number. A Number object can be coerced to a number value by calling the Number constructor as a function.&lt;br&gt;&lt;br&gt;-----------------------&lt;br&gt;&lt;br&gt;new Number возвращает именно объект (Object).&lt;br&gt;&lt;br&gt;Кстати, немаловажно заметить, что примитивные типы передаются по значению, в то время как объекты передаются по ссылке.</description>
		<content:encoded><![CDATA[<p><a href="http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf" rel="nofollow"></a><a href="http://www.ecma-international.org/publications/.." rel="nofollow">http://www.ecma-international.org/publications/..</a>.</p>
<p>Не поленился посмотреть спецификацию:</p>
<p>4.3.2 Primitive Value<br />A primitive value is a member of one of the types Undefined, Null, Boolean, Number, or String. A primitive value is a datum that is represented directly at the lowest level of the language implementation.</p>
<p>4.3.3 Object<br />An object is a member of the type Object. It is an unordered collection of properties each of which<br />contains a primitive value, object, or function. A function stored in a property of an object is called a<br />method.</p>
<p>&#8230;</p>
<p>4.3.20 Number Type<br />The type Number is a set of values representing numbers. In ECMAScript, the set of values represents the double-precision 64-bit format IEEE 754 values including the special “Not-a-Number” (NaN) values, positive infinity, and negative infinity.</p>
<p>4.3.21 Number Object<br />A Number object is a member of the type Object and is an instance of the built-in Number object. That is, a Number object is created by using the Number constructor in a new expression, supplying a number as an argument. The resulting object has an implicit (unnamed) property that is the number. A Number object can be coerced to a number value by calling the Number constructor as a function.</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>new Number возвращает именно объект (Object).</p>
<p>Кстати, немаловажно заметить, что примитивные типы передаются по значению, в то время как объекты передаются по ссылке.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: Alexander Ulizko</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1465</link>
		<dc:creator>Alexander Ulizko</dc:creator>
		<pubDate>Sun, 05 Apr 2009 20:59:12 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1465</guid>
		<description>&lt;quote&gt;Какая же это бага? Это скорее вы чего-то странного хотите :) Boolean&lt;br&gt;и Number это объекты-обертки над примитивными типами данных boolean и&lt;br&gt;number. &lt;/quote&gt;&lt;br&gt;Любопытно. Если мне не изменяет память, встроенные типы данных -- это&lt;br&gt;Undefined, Null, Boolean, Number, String, Object. А примитивы boolean и&lt;br&gt;number - это что-то вроде &quot;примитивных значений&quot; соответствующих встроенных&lt;br&gt;типов. Хотя за правильность формулировки не ручаюсь, лень лезть в спеку.&lt;br&gt;&lt;br&gt;&lt;quote&gt;Методы YUI.Lang.isBoolean и YUI.Lang.isNumber как раз и проверяют&lt;br&gt;примитивного ли типа переменная.&lt;/quote&gt;&lt;br&gt;Я хочу не странного, а того, чтобы эти методы возвращали true, если в них&lt;br&gt;передаешь примитив или встроенный тип.&lt;br&gt;&lt;br&gt;&lt;quote&gt;Кстати, я вообще не понимаю зачем использовать эти объекты в явном&lt;br&gt;виде&lt;/quote&gt;&lt;br&gt;Не знаю :)</description>
		<content:encoded><![CDATA[<p>&lt;quote&gt;Какая же это бага? Это скорее вы чего-то странного хотите :) Boolean<br />и Number это объекты-обертки над примитивными типами данных boolean и<br />number. &lt;/quote&gt;<br />Любопытно. Если мне не изменяет память, встроенные типы данных &#8212; это<br />Undefined, Null, Boolean, Number, String, Object. А примитивы boolean и<br />number &#8211; это что-то вроде &laquo;примитивных значений&raquo; соответствующих встроенных<br />типов. Хотя за правильность формулировки не ручаюсь, лень лезть в спеку.</p>
<p>&lt;quote&gt;Методы YUI.Lang.isBoolean и YUI.Lang.isNumber как раз и проверяют<br />примитивного ли типа переменная.&lt;/quote&gt;<br />Я хочу не странного, а того, чтобы эти методы возвращали true, если в них<br />передаешь примитив или встроенный тип.</p>
<p>&lt;quote&gt;Кстати, я вообще не понимаю зачем использовать эти объекты в явном<br />виде&lt;/quote&gt;<br />Не знаю :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>Автор: stepanvr</title>
		<link>http://ulizko.com/posts/203/comment-page-1#comment-1464</link>
		<dc:creator>stepanvr</dc:creator>
		<pubDate>Sat, 04 Apr 2009 21:21:07 +0000</pubDate>
		<guid isPermaLink="false">http://ulizko.com/posts/203#comment-1464</guid>
		<description>&gt;&gt; Пойду на форум YUI рапортовать о баге.&lt;br&gt;&lt;br&gt;Какая же это бага? Это скорее вы чего-то странного хотите :) Boolean и Number это объекты-обертки над примитивными типами данных boolean и number. Методы YUI.Lang.isBoolean и YUI.Lang.isNumber как раз и проверяют примитивного ли типа переменная.&lt;br&gt;&lt;br&gt;Кстати, я вообще не понимаю зачем использовать эти объекты в явном виде и писать new Boolean, new Number и new String. Если нужны методы этих объектов, то примитивные типы boolean, number и string автоматически оборачиваются в эти объекты:&lt;br&gt;&lt;br&gt;var a = 123.45678;&lt;br&gt;alert(a.toFixed(3));&lt;br&gt;&lt;br&gt;Если же очень хочется писать new Number, то у полученного объекта есть метод valueOf, который возвращает &quot;обернутое примитивное значение&quot;. Результат вызова valueOf и передавайте в YUI.Lang.isNumber, а курочить YUI не надо :)</description>
		<content:encoded><![CDATA[<p>&gt;&gt; Пойду на форум YUI рапортовать о баге.</p>
<p>Какая же это бага? Это скорее вы чего-то странного хотите :) Boolean и Number это объекты-обертки над примитивными типами данных boolean и number. Методы YUI.Lang.isBoolean и YUI.Lang.isNumber как раз и проверяют примитивного ли типа переменная.</p>
<p>Кстати, я вообще не понимаю зачем использовать эти объекты в явном виде и писать new Boolean, new Number и new String. Если нужны методы этих объектов, то примитивные типы boolean, number и string автоматически оборачиваются в эти объекты:</p>
<p>var a = 123.45678;<br />alert(a.toFixed(3));</p>
<p>Если же очень хочется писать new Number, то у полученного объекта есть метод valueOf, который возвращает &laquo;обернутое примитивное значение&raquo;. Результат вызова valueOf и передавайте в YUI.Lang.isNumber, а курочить YUI не надо :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
