JavaScript Advanced Quiz JavaScript & jQuery Quizzes Home  <<   JavaScript Advanced Quiz

The questions in this third quiz on JavaScript are on the topics covered in the JavaScript Advanced section of the site. The table below lists the lessons, a description of the lesson content and the the quiz question number range.

Lesson Summary

Click on a lesson in the table to go to that lesson for a refresher on the topics for that lesson.

JavaScript Advanced Lessons Description Question Range
Lesson 1 - Adv. Conditional StatementsIn this lesson we take a look at the switch....case....default statements and the conditional operator.1 - 4
Lesson 2 - ErrorsIn this lesson we take a look at how JavaScript handles errors.5 - 8
Lesson 3 - NumberIn this lesson we take a look at The JavaScript Number object and some of its usages.9 - 11
Lesson 4 - MathFor this lesson we take a look at The JavaScript Math static object and some of its usages.12 - 14
Lesson 5 - Elegant Object CreationIn this lesson we take a look at elegant object creation using prototyping.15 - 16
Lesson 6 - The DOMIn this lesson we take a look at the DOM.17 - 19
Lesson 7 - EventsFor this lesson we look at Events and how we can bring our pages to life using JavaScript to react to them.20 - 22
Lesson 8 - Function Recursion & ClosuresIn this lesson we tackle the tricky subjects of function recursion and closures.23 - 25
Lesson 9 - Any Other BusinessIn this lesson we look at the JavaScript globals and statements not covered in previous lessons.26 - 28

JavaScript Advanced Quiz

The quiz below tests your knowledge of the material learnt in the JavaScript Advanced section of the site.

Question 1 : In a switch....case....default construct where do we put the expression we are going to evaluate?
- The <code>switch</code> statement is where we put the expression we are going to evaluate. .
Question 2 : The default statement is mandatory when coding the switch....case....default construct?
- The <code>default</code> statement is optional when coding the <code>switch....case....default</code> construct.
Question 3 : Which construct is the Conditional special operator often used as a shortcut replacement for?
- The <code>Conditional</code> special operator takes three operands and is often used as a shortcut replacement for the <code>if....else</code> construct.
Question 4 : What is alerted from the following code?
var aBoolean = 'true';
alert((aBoolean == 'false' ? 'A' : 'B'));
- <code>B</code> is alerted from the above code.
Question 5 : Which construct do we use with errors?
- We use the <code>try....catch....finally</code> construct when dealing with errors.
Question 6 : Will a finally statement always run?
- A <code>finally</code> statement will always be executed.
Question 7 : How many global error constructors are there in JavaScript?
- There are 5 global error constructors, these being <code>Error</code>, <code>RangeError</code>, <code>ReferenceError</code>, <code>TypeError</code> and <code>URIError</code>, .
Question 8 : Which statement do we use to invoke an error?
- We use the <code>throw</code> statement to invoke an error.
Question 9 : The Number object is static just like the Math object and so we can't create objects of this type?
- The <code>Number</code> object is used for mathemitcal calcualtions much like the <code>Math</code> object is, but is not static and so we can create instances of the <code>Number</code> object.
Question 10 : When creating a Number object, what do passed values that can't be converted return?
- When creating a <code>Number</code> object passed values that can't be converted return <code>NaN</code>.
Question 11 : What is alerted from the following code?
var aNumber = 12;
var bNumber = '12';
alert(aNumber + bNumber);
alert(aNumber + Number(bNumber));
- The first alert is treated as a string concatenation and so returns 1212. In the second alert we use the <code>Number</code> object for type conversion and so the numbers are added together and 24 is alerted.
Question 12 : How do we access properties of the Math object?
- As the <code>Math</code> object is static we access properties of the <code>Math</code> class at the 'class level', therefore all properties are accessed using the following syntax <code>Math.aPropertyName</code>.
Question 13 : What are the Math object properties examples of?
- The <code>Math</code> object properties are examples of JavaScript constants as their values never change. The way to recognize a constant is that any letters in its name should be in capital letters.
Question 14 : How many instance methods exist in the Math class?
- The <code>Math</code> object is static and as such has no instance properties or methods.
Question 15 : What keyword can we use when creating objects to match a parameter to a property?
- We use the <code>this</code> special operator to match a parameter to a property.
Question 16 : What keyword is used in conjunction with this for object prototyping?
- We use the <code>new</code> special operator in conjunction with the <code>this</code> special operator for object prototyping.
Question 17 : What does the acronym DOM stand for.?
- The acronym <em>DOM</em> stands for <em>Document Object Model</em>.
Question 18 : What are individual entries within the DOM known as?
- Individual entries within the <em>DOM</em> are known as <em>nodes</em>.
Question 19 : Web browsers provide which property that allows developers to modify the DOM?
- Web browsers provide the <code>innerHTML</code> property that allows developers to modify the <em>DOM</em>.
Question 20 : Which of the following is an event in JavaScript?
- Events are part of the <em>DOM</em> Event Model provided by all web browsers and are executed when a change happens on a web page, so all of the above are considered as <em>events</em>.
Question 21 : JavaScript is a multi-threaded language?
- JavaScript is not a multi-threaded language, so we don't have to worry about multiple events hitting a piece of code at the same time and possibly updating and corrupting shared data.
Question 22 : There are three ways to deal with events when using JavaScript, which one should we adopt in our event handling?
- With Listener Event Registration there is no pollution of structure and we can have multilple handles covering multiple events for the same element and so it the best way to deal with events.
Question 23 : Function recursion occurs when a function is referred to and called internally by itself. We can make a function refer to itself by using the function name or?
- The second way to use recursion is via an in-scope variable which refers to the function.
Question 24 : Each time a closure is called the local variables are reused?
- Each time a closure is called a new set of local variables are created.
Question 25 : A closures local variables are copied.?
- A closures local variables are stored by reference and not copied.
Question 26 : The encodeURI global function encodes component parts of a uri?
- The <em>encodeURI</em> global function will encode special characters within the URL, apart from those parts used by component parts of the uri.
Question 27 : If we encode a URI using the encodeURIComponent global function and then decode it using the decodeURIComponent global function, we should end up with the same uri we had before we encoded and then decoded it.
- If we encode a URI using the <code>encodeURIComponent;</code> global function and then decode it using the <code>decodeURIComponent;</code> global function, we should end up with the same uri we had before we encoded and then decoded it.
Question 28 : What happens when we use the debugger statement and no debugging functionality available.?
- The <code>debugger</code> statement starts up any available debugging functionality, or does nothing if no debugging functionality available.
Quiz Progress Bar Please select an answer

What's Next?

In the next quiz we test our knowledge of the topics covered in the jQuery Basics section of the site .