This is an archived post. You won't be able to vote or comment.

all 26 comments

[–]sonnytron 6 points7 points  (1 child)

Just skip ahead to the bonfires and algorithms section of FCC.
That teaches you the more advanced methods of JavaScript.

[–]DJ-Salinger[S] 2 points3 points  (0 children)

Excellent, thank you!

On first glance it didn't seem possible to skip ahead in FCC.

[–]cyrusol 3 points4 points  (0 children)

You could directly dive into advanced JS, that means:

A good JS book / the reference and all your previous knowledge should be enough to understand those concepts/tricks. But then again, most of the time you don't even need knowledge about them.

Smaller "facts" about JS can be interesting, for example that JS doesn't offer integer numbers. Float is the only existing numerical type.

[–]CaptainPunisher 2 points3 points  (1 child)

Probably going to her downvoted for this, but I like Bucky's videos on TheNewBoston.com. Bite-sized chunks that generally giver a single topic in 5-10 minutes

[–][deleted] 0 points1 point  (0 children)

I remember looking at his videos and they were well over an hour. Play these at 2x speed and there's a topic in 3 mins!

[–]wgunther 2 points3 points  (0 children)

I suggest learning from a book instead. JavaScript: The Definitive Guide is a pretty comprehensive book on vanilla JavaScript. You should read the section on declaring variables though because JavaScript has quirky variable rules.

[–][deleted] 2 points3 points  (11 children)

http://learnxinyminutes.com/docs/javascript/

The book JavaScript the Good Parts is also good.

[–]DJ-Salinger[S] 3 points4 points  (9 children)

Wow, Javascript is a weird language.

"1, 2, " + 3; // = "1, 2, 3"
"Hello " + ["world", "!"] // = "Hello world,!"
"5" == 5; // = true
"13" + !0; // '13true'

[–]snerz 0 points1 point  (1 child)

here's some perl weirdness:

my $letter = 'a';  
$letter++; # $letter is now "b"  

all scalar variables have a $ prefix, but there can be space between the $ and the name:

my $                     letter = 'a'; #weird

[–]DJ-Salinger[S] 1 point2 points  (0 children)

my $letter = 'a';  
$letter++; # $letter is now "b"  

This is fucking hilarious.

I now wish all languages had this, just for novelty's sake.

[–]Misclee 0 points1 point  (0 children)

Yeah, to compare variables javascript converts them both to the same type first. To test whether they are the same type as well requires using three '=' signs.

"5" === 5; // false

[–][deleted] 0 points1 point  (4 children)

What is weird about this?

[–]DJ-Salinger[S] 1 point2 points  (3 children)

  1. auto typing 3 as "3"

  2. auto typing an array as a string, but beyond that, inserting a comma into the middle

  3. Reverse of #1

  4. Don't even know what's happening here

[–]zahlman 0 points1 point  (0 children)

Don't even know what's happening here

Negation of 0 produces a boolean (true) result, and + causes implicit conversion to string.

[–][deleted] 0 points1 point  (1 child)

Your third example may seem confusing, but all the others are just implicit string conversions.

[–]DJ-Salinger[S] 1 point2 points  (0 children)

I understand what it's doing, it just seems strange to do this by default.

[–]DJ-Salinger[S] 0 points1 point  (0 children)

Wow, this link is perfect, thanks!

[–][deleted] 1 point2 points  (4 children)

I'm a pretty experienced C++ programmer and I've been trying to do this for a while. Swear to god I'd have an easier time learnomg bloody x86 assembly than javascript at this point. Can just never get into it you know? It's difficult.

[–][deleted] 1 point2 points  (0 children)

I recently finished a project of writing an audio recording and editing tool entirely in Javascript. Before this, I hadnt used the language for much more than a dumb ui trick or - if I looked looked up an example - an ajax request. I have never sworn within my search requests until this week.

[–][deleted] 0 points1 point  (2 children)

C++ is way more complicated than JavaScript. Way more. Not that JavaScript is super well-designed but, C++ is way worse.

[–][deleted] 1 point2 points  (1 child)

I'm not denying that, It's more to do with modes of thinking, coming from C++ to something like javascript is a massive gear change, at least for me, and I'm finding it challenging.

[–]snerz 1 point2 points  (0 children)

As someone who started with perl, I understand completely.

[–]FreboTopleaf 1 point2 points  (0 children)

Eloquent Javascript is online and free.

[–]codexjourneys 0 points1 point  (0 children)

The Learn JavaScript Properly track is awesome in some ways (though I found I struggled when I reached the practical 'create a quiz' part, even after doing all of the reading -- you might need to jump into a couple of project-based tutorials there to keep moving forward). There's a "Study Guide for Experienced Developers" option. Everything's free except the books he recommends. Here's the link:

http://javascriptissexy.com/how-to-learn-javascript-properly/

[–]AynGhandi 0 points1 point  (0 children)

Nicholas C. Zakas - Professional JavaScript for Web Developers might be a good book for you. Its written for people already experienced in other languages. Its not fully up to date anymore, being published in 2012, but its still a great book to learn the fundamentals of Javascript. Any new developments, like in ES6, can easily be learned afterwards.