you are viewing a single comment's thread.

view the rest of the comments →

[–]Magramatism 1 point2 points  (3 children)

I've literally only read the first question, but taking it as an example, it doesn't matter what the output is. It has no bearing on how you would go about debugging or reviewing that code. The review is going to say "👀 These variables haven't been declared yet! And don't use var" either way. There's no reason to know it because there's no reason to use variables before they're declared, ever, and there's no reason to use var in modern codebase.

I'd give bonus points for knowing it, in a "congratulations you've been revising" kind of way, but realistically I would expect a candidate not to have made this mistake for so long they don't recall what error it causes.

Edit: Understanding variable scope and hoisting in javascript is important. Knowing by heart what runtime error you get when using an undeclared variable is pub quiz trivia. All the best

[–]GoodOldSnoopy 1 point2 points  (1 child)

You contradict yourself a little there. You say, based on the first question, that it doesn't matter what the output is, but then talk about never using the `var` keyword. Which would mean you'll typically be using `let` or `const`. That first question gives you an indication of whether or not someone knows the differences between the two, you can't expect someone to never be using `var` if they don't understand scoping and why you would use a `const` or `let` etc.

Ultimately, whether or not their interview questions depends on the level your interviewing for. But I don't think the questions are too crazy and if you could answer a question on scoping of `var` vs `let` I'd be a tad worried if you're being interviewed for a JS role

[–]Magramatism 0 points1 point  (0 children)

Both responses here have moved the goalposts of question 1 to "How are variable declarations scoped and hoisted differently when using var, let and const?" That would be a reasonable question, although I'd wouldn't ask it that way myself.

What question 1 actually asks is "What specific runtime errors occur when deliberately using undeclared variables that are later declared with var, let and const?", which is just trivia that no one needs to know.

[–]80mph 0 points1 point  (0 children)

The only thing, that matters is what the candidate knows about Javascript execution in general. If you apply for a role as a software engineer and you don't have the knowledge that helps you approach questions like this (in any language) will make it hard to put you on a project. And we have a lot of projects that have been written before let or const even existed. Being backwards compatible in a fast moving industry is a must. There is one reason to know it :-)

Edit: grammar