JavaScript is a funny language, many really smart programmers never really take the time to learn it. They learn how to write jQuery code, but never learn the beauty of the language beneath it. I blame JavaScirpts trouble past for this, if you've ever had to debug JavaScript on IE6 you know what I mean.
This session is for developers who know JavaScript but dont really know JavaScript. If you are unsure about attending ask yourself these following questions, if you answer is "no" to any of them, you might want to attend this session:
- What is the difference between
var func = function(){}
andfunction func(){}
? - There is a subtle difference between lexical scoping and closures, what is it?
- What [7] == 7 is and why?
- What each log statement produces when running the following code:This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
var a = { foo : function(){ console.log ( this ); var bar = function(){ console.log( this ); }; bar(); } }; a.foo();
- What
undefined || 'foo'
returns? - Why
foo.constructor === Foo
is false when running the following code:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersvar Foo = function(){}; Foo.prototype = new Bar(); var foo = new Foo(); foo.constructor === Foo; ///alse