ecmabot

Provide search, javascript console, knowledge list.

!somecommand withparam here @ someone
someone: some result

Console

>> javascriptcodehere

/msg ecmabot |> first line here

/msg ecmabot |> second line here

>> last line

No window object, no document object.

Searching

!caniuse cssorjavascript # search on caniuse.com website

!g some keywords # for google search

!google some keywords # for google search

!mdn some keywords # search on developer.mozilla.org (pretty much a !g mdn some keywords)

Knowledge

!ASI (2013-10-12)
ASI stands for 'automatic semicolon insertion', a mechanism by which semicolons may be omitted from the source codein certain cases, and still be recognised by the parser. For details: http://inimino.org/~inimino/blog/javascript_semicolons - for fewer details and a commonly-held opinion, see http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml?showone=Semicolons#Semicolons
!books (2013-10-12)
!eloquent (http://eloquentjavascript.net), JS Patterns by Stoyan Stefanov, JavaScript: The Definitive Guide by David Flanagan, High Performance JavaScript by Nicholas C. Zakas, Effective JavaScript by David Herman, Functional JavaScript by Michael Fogus.
!class (2013-10-12)
JavaScript does not have class-based inheritance. Instead, it has constructor functions which initialize newly created objects that are linked to the constructor's prototype. These instances point to the prototype and use it for fallback property lookup.
!code (2013-10-12)
Show some code. Code examples should be complete (sufficient to show the problem) and minimal (as short as possible while remaining complete). Go to http://jsbin.com/ or see !paste.
!debug
!ded (2013-10-12)
Dedicated channels: #angularjs - #browserify - ##closure-tools - #coffeescript - #css - #d3.js - #documentcloud (Backbone.js) - #dojo - #emberjs - #express - #googlemaps - #jadejs - #jquery - #knockoutjs - #mootools - #moutjs - #node.js - #prototype - #requirejs - ##twitter-bootstrap - #webgl - #yui - #grunt
!dedicated (2013-10-12)
Dedicated channels: #angularjs - #browserify - ##closure-tools - #coffeescript - #css - #d3.js - #documentcloud (Backbone.js) - #dojo - #emberjs - #express - #googlemaps - #jadejs - #jquery - #knockoutjs - #mootools - #moutjs - #node.js - #prototype - #requirejs - ##twitter-bootstrap - #webgl - #yui - #grunt
!eloquent
!help (2013-10-12)
For help, ask your question. Be patient. Code samples should be pasted in a paste service (see !paste). Tell us 1) what you want to happen, 2) what is actually happening, and 3) any error messages you find (see !debug).
!help! (2013-10-12)
Dont panic!
!java(2013-10-12)
Remember, Java is to JavaScript as Pain is to Painting, or Ham is to Hamster. We don't know Java, and if you're trying to apply your Java knowledge to JavaScript, it probably won't work. Try #java
!oop (2013-10-13)
http://killdream.github.io/2011/10/09/understanding-javascript-oop.html summarizes Object Oriented Programming in Javascript, using concepts from ECMAScript 5, and relating them back to older paradigms from ECMAScript 3
!paste
!parseInt (2013-10-12)
If you want to convert something to a Number, don't use `parseInt`, just convert it to a Number using `Number(x)`. parseInt will convert it to a String, then extract the first numeric characters in that String that are allowed in the specified radix, THEN convert those to a Number. You only use it for things like parseInt('500 days of Summer') => 500
!xy (2013-10-12)
The XY problem: You want to do X, but don't know how. You think you can solve it using Y, but don't know how to do that either. You ask about Y, which is a strange thing to want to do. Just ask about X.