Skip to content

Latest commit

 

History

History
executable file
·
599 lines (522 loc) · 16.2 KB

javascript-quiz.md

File metadata and controls

executable file
·
599 lines (522 loc) · 16.2 KB

JavaScript

Q1. Which operator returns true if the two compared values are not equal?

  • <>
  • ~
  • ==!
  • !==

Q2. How is a forEach statement different from a for statement?

  • Only a for statement uses a callback function.
  • A for statement is generic, but a forEach statement can be used only with an array.
  • Only a forEach statement lets you specify your own iterator.
  • A forEach statement is generic, but a for statement can be used only with an array.

Q3. Review the code below. Which statement calls the addTax function and passes 50 as an argument?

function addTax(total) {
  return total * 1.05;
}
  • addTax = 50;
  • return addTax 50;
  • addTax(50);
  • addTax 50;

Q3 How would you use this function to find out how much tax should be paid on $50?

(Version 2, possibly an updated version)

function addTax(total) {
  return total * 1.05;
}
  • addTax($50);
  • return addTax 50;
  • addTax(50);
  • addTax 50;

Q4. Which statement is the correct way to create a variable called rate and assign it the value 100?

  • let rate = 100;
  • let 100 = rate;
  • 100 = let rate;
  • rate = 100;

Q5. Which statement creates a new object using the Person constructor?

  • var student = new Person();
  • var student = construct Person;
  • var student = Person();
  • var student = construct Person();

Q6. When would the final statement in the code shown be logged to the console?

let modal = document.querySelector('#result');
setTimeout(function(){
    modal.classList.remove('hidden);
}, 10000);
console.log('Results shown');
  • after 10 second
  • after results are received from the HTTP request
  • after 10000 seconds
  • immediately

Q7. You've written the code shown to log a set of consecutive values, but it instead results in the value 5, 5, 5, and 5 being logged to the console. Which revised version of the code would result in the value 1, 2, 3 and 4 being logged?

for (var i = 1; i <= 4; i++) {
  setTimeout(function () {
    console.log(i);
  }, i * 10000);
}
  • for (var i=1; i<=4; i++){ (function(i){ setTimeout(function(){ console.log(j); }, j*1000); })(j) }
  • while (var i=1; i<=4; i++) { setTimeout(function() { console.log(i); }, i*1000); }
  • for (var i=1; i<=4; i++) { {function(j) { setTimeout(function(){ console.log(j); }, j*1000); })(i) }
  • for (var j=1; j<=4; j++) { setTimeout(function() { console.log(j); }, j*1000); }

Q8. How does a function create a closure?

  • It reloads the document whenever the value changes.
  • It returns a reference to a variable in its parent scope.
  • It completes execution without returning.
  • It copies a local variable to the global scope.

Q9. Which statement creates a new function called discountPrice?

  • let discountPrice = function(price) { return price * 0.85; };
  • let discountPrice(price) { return price * 0.85; };
  • let function = discountPrice(price) { return price * 0.85; };
  • discountPrice = function(price) { return price * 0.85; };

10. What is the result in the console of running the code shown?

var Storm = function () {};
Storm.prototype.precip = 'rain';
var WinterStorm = function () {};
WinterStorm.prototype = new Storm();
WinterStorm.prototype.precip = 'snow';
var bob = new WinterStorm();
console.log(bob.precip);
  • Storm()
  • undefined
  • 'rain'
  • 'snow'

Q11. You need to match a time value such as 12:00:32. Which of the following regular expressions would work for your code?

  • /[0-9]{2,}:[0-9]{2,}:[0-9]{2,}/
  • /\d\d:\d\d:\d\d/
  • /[0-9]+:[0-9]+:[0-9]+/
  • / : : /

Q12. What is the result in the console of running this code?

'use strict';
function logThis() {
  this.desc = 'logger';
  console.log(this);
}
new logThis();
  • undefined
  • window
  • {desc: "logger"}
  • function

Q13. How would you reference the text 'avenue' in the code shown?

let roadTypes = ['street', 'road', 'avenue', 'circle'];
  • roadTypes.2
  • roadTypes[3]
  • roadTypes.3
  • roadTypes[2]

Q14. What is the result of running this statement?

console.log(typeof(42));

  • 'float'
  • 'value'
  • 'number'
  • 'integer'

Q15. Which property references the DOM object that dispatched an event?

  • self
  • object
  • target
  • source

Q16. You're adding error handling to the code shown. Which code would you include within the if statement to specify an error message?

function addNumbers(x, y) {
  if (isNaN(x) || isNaN(y)) {
  }
}
  • exception('One or both parameters are not numbers')
  • catch('One or both parameters are not numbers')
  • error('One or both parameters are not numbers')
  • throw('One or both parameters are not numbers')

Q17. Which method converts JSON data to a JavaScript object?

  • JSON.fromString();
  • JSON.parse()
  • JSON.toObject()
  • JSON.stringify()

Q18. When would you use a conditional statement?

  • When you want to reuse a set of statements multiple times.
  • When you want your code to choose between multiple options.
  • When you want to group data together.
  • When you want to loop through a group of statement.

Q19. What would be the result in the console of running this code?

for (var i = 0; i < 5; i++) {
  console.log(i);
}
  • 12345
  • 1234
  • 01234
  • 012345

Q20. Which Object method returns an iterable that can be used to iterate over the properties of an object?

  • Object.get()
  • Object.loop()
  • Object.each()
  • Object.keys()

Q21. After the following code, what is the value of a.length?

var a = ['dog', 'cat', 'hen'];
a[100] = 'fox';
  • 101
  • 3
  • 4
  • 100

Q22. What is one difference between collections created with Map and collections created with Object?

  • You can iterate over values in a Map in their insertion order.
  • You can count the records in a Map with a single method call.
  • Keys in Maps can be strings.
  • You can access values in a Map without iterating over the whole collection.

Map.prototype.size returns the number of elements in a Map, whereas Object does not have a built-in method to return its size.

Q23. What is the value of dessert.type after executing this code?

const dessert = { type: 'pie' };
dessert.type = 'pudding';
  • pie
  • The code will throw an error.
  • pudding
  • undefined

Q24. 0 && hi

  • ReferenceError
  • True
  • 0
  • false

Q25. Which of the following operators can be used to do a short-circuit evaluation?

  • ++
  • --
  • ==
  • ||

Q26. Which statement sets the Person constructor as the parent of the Student constructor in the prototype chain?

  • Student.parent = Person;
  • Student.prototype = new Person();
  • Student.prototype = Person;
  • Student.prototype = Person();

Q27. Why would you include a "use strict" statement in a JavaScript file?

  • to tell parsers to interpret your JavaScript syntax loosely
  • to tell parsers to enforce all JavaScript syntax rules when processing your code
  • to instruct the browser to automatically fix any errors it finds in the code
  • to enable ES6 features in your code

Q28. Which Variable-defining keyword allows its variable to be accessed (as undefined) before the line that defines it?

  • all of them
  • const
  • var
  • let

Q29. Which of the following values is not a Boolean false?

  • Boolean(0)
  • Boolean("")
  • Boolean(NaN)
  • Boolean("false")

Q30. Which of the following is not a keyword in JavaScript?

  • this
  • catch
  • function
  • array

Q31. Which variable is an implicit parameter for every function in JavaScript?

  • Arguments
  • args
  • argsArray
  • argumentsList

Q32. For the following class, how do you get the value of 42 from an instance of X?

class X {
  get Y() {
    return 42;
  }
}
  • x.get('Y')
  • x.Y
  • x.Y()
  • x.get().Y

Q33. What is the result of running this code?

sum(10, 20);
diff(10, 20);
function sum(x, y) {
  return x + y;
}

let diff = function (x, y) {
  return x - y;
};
  • 30, ReferenceError, 30, -10
  • 30, ReferenceError
  • 30, -10
  • ReferenceError, -10

Q34. Why is it usually better to work with Objects instead of Arrays to store a collection of records?

  • Objects are more efficient in terms of storage.
  • Adding a record to an object is significantly faster than pushing a record into an array.
  • Most operations involve looking up a record, and objects can do that better than arrays.
  • Working with objects makes the code more readable.

Explanation: Records in an object can be retrieved using their key which can be any given value (e.g. an employee ID, a city name, etc), whereas to retrieve a record from an array we need to know its index.

Q35. Which statement is true about the "async" attribute for the HTML script tag?

  • It can be used for both internal and external JavaScript code.
  • It can be used only for internal JavaScript code.
  • It can be used only for internal or external JavaScript code that exports a promise.
  • It can be used only for external JavaScript code.

Q36. How do you import the lodash library making it top-level Api available as the "_" variable?

  • import _ from 'lodash';
  • import 'lodash' as _;
  • import '_' from 'lodash;
  • import lodash as _ from 'lodash';

Q37. What does the following expression evaluate to?

[] == [];
  • True
  • undefined
  • []
  • False

Q38. What is the name of a function whose execution can be suspended and resumed at a later point?

  • Generator function
  • Arrow function
  • Async/ Await function
  • Promise function

Q39. What will this code print?

var v = 1;
var f1 = function () {
  console.log(v);
};

var f2 = function () {
  var v = 2;
  f1();
};

f2();
  • 2
  • 1
  • Nothing--this code will throw an error.
  • undefined

Q40. Which statement is true about Functional Programming?

  • Every object in the program has to be a function.
  • Code is grouped with the state it modifies.
  • Date fields and methods are kept in units.
  • Side effects are not allowed.

Q41. Your code is producing the error: TypeError: Cannot read property 'reduce' of undefined. What does that mean?

  • You are calling a method named reduce on an object that's declared but has no value.
  • You are calling a method named reduce on an object that does not exist.
  • You are calling a method named reduce on an empty array.
  • You are calling a method named reduce on an object that's has a null value.

Q42. How many prototype objects are in the chain for the following array?

let arr = [];

  • 3
  • 2
  • 0
  • 1

Q43. Which of the following is not a unary operator?

  • typeof
  • delete
  • instanceof
  • void

Q44. What type of scope does the end variable have in the code shown?

var start = 1;
if (start === 1) {
  let end = 2;
}
  • conditional
  • block
  • global
  • function

Q45. What will the value of y be in this code:

const x = 6 % 2;
const y = x ? 'One': 'Two';
  • One
  • undefined
  • TRUE
  • Two

Q46. Which keyword is used to create an error?

  • throw
  • exception
  • catch
  • error

Q47. What's one difference between the async and defer attributes of the HTML script tag?

  • The defer attribute can work synchronously.
  • The defer attribute works only with generators.
  • The defer attribute works only with promises.
  • The defer attribute will asynchronously load the scripts in order.

Q48. The following program has a problem. What is it?

var a;
var b = (a = 3) ? true : false;
  • The condition in the ternary is using the assignment operator.
  • You can't define a variable without initializing it.
  • You can't use a ternary in the right-hand side of an assignment operator.
  • The code is using the deprecated var keyword

Q49. Which statement references the DOM node created by the code shown?

<p class="pull">lorem ipsum</p>
  • Document.querySelector('class.pull')
  • document.querySelector('.pull');
  • Document.querySelector('pull')
  • Document.querySelector('#pull')

Q50. What value does the code return?

let answer = true;
if (answer === false) {
  return 0;
} else {
  return 10;
}
  • 10
  • false
  • 0

Q51. What is the result in the console of running the code shown?

var start = 1;
function setEnd() {
  var end = 10;
}
setEnd();
console.log(end);
  • 10
  • 0
  • ReferenceError
  • undefined

Q52. What will this code log in the console?

function sayHello() {
  console.log('hello');
}

console.log(sayHello.prototype);
  • undefined
  • "hello"
  • an object with a constructor property
  • an error message

Q53: Which collection object allows unique value to be inserted only once?

  • Object
  • Set
  • Array
  • Map

Q54. What two values will this code print?

function printA() {
  console.log(answer);
  var answer = 1;
}
printA();
printA();
  • 1 then 1
  • 1 then undefined
  • undefined the undefined
  • undefined the 1

Q55. For the following class, how do you get the value of 42 from "X" ?

class X {
  get Y() {
    return 42;
  }
}
var x = new X();
  • x.Y
  • x.Y()
  • x.get('Y')
  • x.get().Y

Q56. How does the forEach() method differ from a for statement?

  • forEach allows you to specify your own iterator, whereas for does not.
  • forEach can be used only with strings, whereas for can be used with additional data types.
  • forEach can be used only with an array, whereas for can be used with additional data types.
  • for loops can be nested; whereas forEach loops cannot.

Q57. What will be logged to the console?

'use strict';
function logThis() {
  this.desc = 'logger';
  console.log(this);
}
new logThis();
  • undefined
  • function
  • windows
  • {desc: "logger"}

Q58. Which choice is an incorrect way to define an arrow function that returns an empty object?

  • => ({})
  • => {}
  • => { return {};}
  • => (({}))

Q59. Why might you choose to make your code asynchronous?

  • to start tasks that might take some time without blocking subsequent tasks from executing immediately
  • to ensure that tasks further down in your code are not initiated until earlier tasks have completed
  • to make your code faster
  • to ensure that the call stack maintains a LIFO (Last in, First Out) structure

Q60. Which expression evaluates to true?

  • [3] == [3]
  • 3 == '3'
  • 3 != '3'
  • 3 === '3'

Q61. Which choice is a valid variable name?

  • 5thItem
  • firstName
  • grand total
  • function

Q62. Which method cancels event default behavior?

  • cancel()
  • stop()
  • preventDefault()
  • prevent()

Q63. What will be logged to the console?

var a = ['dog', 'cat', 'hen'];
a[100] = 'fox';
console.log(a.length);
  • 101
  • 4
  • 100
  • 3

Q64. Which method do you use to attach one DOM node to another?

  • attachNode()
  • getNode()
  • querySelector()
  • appendChild()

Q65. Which statement is used to skip iteration of the loop?

  • break
  • pass
  • skip
  • continue

Q66. Which choice is valid example for an arrow function?

  • (a,b) => c
  • a, b => {return c;}
  • a, b => c
  • { a, b } => c

Q67. Which concept is defined as a template that can be used to generate different objects that share some shape and/or behavior?

  • class
  • generator function
  • map
  • proxy

Q68. How do you add a comment to JavaScript code?

  • ! This is a comment
  • # This is a comment
  • \ This is a comment
  • // This is a comment

Q69. If you attempt to call a value as a function but the value is not a function, what kind of error would you get?

  • TypeError
  • SystemError
  • SyntaxError
  • LogicError

Q70. Which method is called automatically when an object is initialized?

  • create()
  • new()
  • constructor()
  • init()