<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Grayger &#187; JavaScript</title>
	<atom:link href="http://www.grayger.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grayger.com</link>
	<description>In the pursuit of effectiveness</description>
	<lastBuildDate>Sat, 02 Jul 2011 16:38:53 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JavaScript The Good Parts</title>
		<link>http://www.grayger.com/javascript/javascript-the-good-parts/</link>
		<comments>http://www.grayger.com/javascript/javascript-the-good-parts/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 16:17:09 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Douglas Crockford]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=37</guid>
		<description><![CDATA[&#8220;JavaScript The Good Parts&#8221; by Douglas Crockford is one of the most subjective books on JavaScript because it dares to divide JavaScript language specifications into good parts and bad parts.
Most of good parts are well-known, but not widely used. I can see they are fully and correctly used in JavaScript frameworks or toolkits but they [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;JavaScript The Good Parts&#8221; by Douglas Crockford is one of the most subjective books on JavaScript because it dares to divide JavaScript language specifications into good parts and bad parts.</p>
<p>Most of good parts are well-known, but not widely used. I can see they are fully and correctly used in JavaScript frameworks or toolkits but they are rarely or inappropriately used by page designers.</p>
<p>For me, sections on bad parts are much useful. I tell &#8220;===&#8221; from &#8220;==&#8221; but I have never used &#8220;===&#8221; just because I, as a Java programmer, am not familiar to it. The book helps use bad parts less rather than use good parts more.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-the-good-parts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pro JavaScript Techniques</title>
		<link>http://www.grayger.com/javascript/pro-javascript-techniques/</link>
		<comments>http://www.grayger.com/javascript/pro-javascript-techniques/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 11:17:03 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=27</guid>
		<description><![CDATA[The &#8220;Pro JavaScript Techniques&#8221; authored by John Resig, the creator of jQuery, is a excellent book. I neither bought nor read the book. Instead I just read sample code snippets from http://jspro.org/code/ and tested them. Guessing from the code snippets, Ch.2 and Ch.3 describe backgrounds of JavaScript. I think these chapters are the core of [...]]]></description>
			<content:encoded><![CDATA[<p>The &#8220;Pro JavaScript Techniques&#8221; authored by John Resig, the creator of jQuery, is a excellent book. I neither bought nor read the book. Instead I just read sample code snippets from <a href="http://jspro.org/code/">http://jspro.org/code/</a> and tested them. Guessing from the code snippets, Ch.2 and Ch.3 describe backgrounds of JavaScript. I think these chapters are the core of this book and they really help us understand the concept of &#8220;prototype-based&#8221; and write object-oriented JavaScript code gracefully. Remaining chapters are for advanced techniques and tips: Ajax, DOM, cross-browser supporting, new features of JavaScript 1.6/1.7 and so on. Even though these chapters are not so much impressive to me, they also seem to be worthwhile to read.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/pro-javascript-techniques/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript function considered a first-class object</title>
		<link>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/</link>
		<comments>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/#comments</comments>
		<pubDate>Mon, 26 Nov 2007 13:22:37 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[First-class object]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://www.grayger.com/wp/?p=21</guid>
		<description><![CDATA[JavaScript is a prototype based language, and it has many characteristics of functional languages. For example, JavaScript regards a function as a first-class object. Among many type checking functions YUI provides, YAHOO.lang.isObject() reflects the characterstic.


&#60;script src=&#34;http://yui.yahooapis.com/2.3.1/build/yahoo/yahoo-min.js&#34; type=&#34;text/javascript&#34;&#62;&#60;/script&#62;
foo= function() {} // function is storable in variables
YAHOO.lang.isObject(foo) // returns true

]]></description>
			<content:encoded><![CDATA[<p>JavaScript is a prototype based language, and it has many characteristics of functional languages. For example, JavaScript regards a function as a first-class object. Among many <a href="http://developer.yahoo.com/yui/examples/yahoo/yahoo_type_checking.html">type checking functions</a> YUI provides, YAHOO.lang.isObject() reflects the characterstic.</p>
<pre class="brush: javascript; ">

&lt;script src=&quot;http://yui.yahooapis.com/2.3.1/build/yahoo/yahoo-min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
foo= function() {} // function is storable in variables
YAHOO.lang.isObject(foo) // returns true
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-function-considered-a-first-class-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript coding style</title>
		<link>http://www.grayger.com/javascript/javascript-coding-style/</link>
		<comments>http://www.grayger.com/javascript/javascript-coding-style/#comments</comments>
		<pubDate>Sun, 11 Nov 2007 10:49:08 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Coding style]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=19</guid>
		<description><![CDATA[When I was a beginner of JavaScript, I don&#8217;t have to use OOP.
As system grows, I put more value on modular design and code reuse.
Some technique enabling OOP were helpful. I just enjoyed the encapsulation technique.


ClassA = function(){
this.funcA = function(){
}
this.funcB = function(){
}
}

Later, I knew that using &#8220;prototype&#8221; is more efficient in memory usage. Refer to [...]]]></description>
			<content:encoded><![CDATA[<p>When I was a beginner of JavaScript, I don&#8217;t have to use OOP.<br />
As system grows, I put more value on modular design and code reuse.</p>
<p><a href="http://mckoss.com/jscript/object.htm">Some technique enabling OOP</a> were helpful. I just enjoyed the encapsulation technique.</p>
<pre class="brush: javascript; ">

ClassA = function(){
this.funcA = function(){
}
this.funcB = function(){
}
}
</pre>
<p>Later, I knew that using &#8220;prototype&#8221; is more efficient in memory usage. Refer to <a href="http://www.softwaresecretweapons.com/jspwiki/javascriptrefactoringforsaferfasterbetterajax">this</a>.</p>
<pre class="brush: javascript; ">

ClassA = function(){
}
ClassA.prototype.funcA = function(){
}
ClassA.prototype.funcB = function(){
}
</pre>
<p>Now, I found more readable and concise style from <a href="http://developer.yahoo.com/">YUI</a>.</p>
<pre class="brush: javascript; ">

ClassA = function(){
}
ClassA.prototype = {
funcA: function(){
},
funcB: function(){
}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/javascript-coding-style/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Misuse of &#8220;Array&#8221; as an associative array</title>
		<link>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/</link>
		<comments>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 01:13:00 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Associative array]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=17</guid>
		<description><![CDATA[The difference between array and associative array is so clear that developers never misuse them.
In fact, if they misuse them in a specific programming language, compiler or interpreter will detect the error.
But JavaScript is exceptional. Unfortunately, it allows careless developers to use &#8220;Array&#8221; as an associative array.
Thanks to the article that awakes me. It doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>The difference between array and associative array is so clear that developers never misuse them.<br />
In fact, if they misuse them in a specific programming language, compiler or interpreter will detect the error.<br />
But JavaScript is exceptional. Unfortunately, it allows careless developers to use &#8220;Array&#8221; as an associative array.<br />
Thanks to the <a href="http://www.andrewdupont.net/2006/05/18/javascript-associative-arrays-considered-harmful">article</a> that awakes me. It doesn&#8217;t take a long time to find silly mistakes in my code.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/misuse-of-array-as-an-associative-array/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unobtrusive JavaScript</title>
		<link>http://www.grayger.com/javascript/unobtrusive-javascript/</link>
		<comments>http://www.grayger.com/javascript/unobtrusive-javascript/#comments</comments>
		<pubDate>Mon, 29 Oct 2007 03:58:00 +0000</pubDate>
		<dc:creator>grayger</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Unobtrusiveness]]></category>
		<category><![CDATA[YUI]]></category>

		<guid isPermaLink="false">http://grayger.hosting.paran.com/wordpress/?p=16</guid>
		<description><![CDATA[About 1 year ago, I had to implement CRUD operation on existing HTML table.  I found that manupulating DOM element enables functions such as adding or deleting rows, sorting table. But it was not simple and code got bigger and bigger as each function is implemented one by one. At that times, sortable table [...]]]></description>
			<content:encoded><![CDATA[<p>About 1 year ago, I had to implement CRUD operation on existing HTML table.  I found that manupulating DOM element enables functions such as adding or deleting rows, sorting table. But it was not simple and code got bigger and bigger as each function is implemented one by one. At that times, <span style="text-decoration: underline"></span><a href="http://www.joostdevalk.nl/code/sortable-table">sortable table example</a> provided valuable insight. It was implemented in unobtrusive way.</p>
<p>Nowdays, if I am asked to use the grid-like control on the WEB, I will not hesitate to select <a href="http://developer.yahoo.com/yui">YUI</a>. Check out YUI if you want to know the beauty of <a href="http://en.wikipedia.org/wiki/Unobtrusive_JavaScript">unobtrusive JavaScript</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grayger.com/javascript/unobtrusive-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

