7. What's the output?
A: true false true
B: false false true
C: true false false
D: false true true
let a = 3;
let b = new Number(3);
let c = 3;
console.log(a == b); console.log(a === b); console.log(b === c);A: true false true
B: false false true
C: true false false
D: false true true
DevScrolls
7. What's the output? let a = 3; let b = new Number(3); let c = 3; console.log(a == b); console.log(a === b); console.log(b === c); A: true false true B: false false true C: true false false D: false true true
What's the output?
Anonymous Poll
38%
A: true false true
22%
B: false false true
24%
C: true false false
16%
D: false true true
Answer: C
new Number() is a built-in function constructor. Although it looks like a number, it's not really a number: it has a bunch of extra features and is an object.
When we use the == operator, it only checks whether it has the same value. They both have the value of 3, so it returns true.
However, when we use the === operator, both value and type should be the same. It's not: new Number() is not a number, it's an object. Both return false.
new Number() is a built-in function constructor. Although it looks like a number, it's not really a number: it has a bunch of extra features and is an object.
When we use the == operator, it only checks whether it has the same value. They both have the value of 3, so it returns true.
However, when we use the === operator, both value and type should be the same. It's not: new Number() is not a number, it's an object. Both return false.
8. What's the output?
class Chameleon {
static colorChange(newColor) {
this.newColor = newColor;
return this.newColor;
}
constructor({ newColor = 'green' } = {}) {
this.newColor = newColor;
}
}
const freddie = new Chameleon({ newColor: 'purple' });
console.log(freddie.colorChange('orange'));
A: orange
B: purple
C: green
D: TypeError
class Chameleon {
static colorChange(newColor) {
this.newColor = newColor;
return this.newColor;
}
constructor({ newColor = 'green' } = {}) {
this.newColor = newColor;
}
}
const freddie = new Chameleon({ newColor: 'purple' });
console.log(freddie.colorChange('orange'));
A: orange
B: purple
C: green
D: TypeError
DevScrolls
8. What's the output? class Chameleon { static colorChange(newColor) { this.newColor = newColor; return this.newColor; } constructor({ newColor = 'green' } = {}) { this.newColor = newColor; } } const freddie = new Chameleon({ newColor:…
Answer: D
The colorChange function is static. Static methods are designed to live only on the constructor in which they are created, and cannot be passed down to any children or called upon class instances. Since freddie is an instance of class Chameleon, the function cannot be called upon it. A TypeError is thrown.
The colorChange function is static. Static methods are designed to live only on the constructor in which they are created, and cannot be passed down to any children or called upon class instances. Since freddie is an instance of class Chameleon, the function cannot be called upon it. A TypeError is thrown.
9. What happens when we do this?
function bark() { console.log('Woof!'); } bark.animal = 'dog';
function bark() { console.log('Woof!'); } bark.animal = 'dog';
Anonymous Poll
15%
A: Nothing, this is totally fine!
36%
B: SyntaxError. You cannot add properties to a function this way.
30%
C: "Woof" gets logged
18%
D: ReferenceError
https://thedailyfrontend.com/what-is-iife-immediately-invoked-function-expression-in-javascript/
Let's understand What is IIFE (Immediately Invoked Function Expression) in Javascript with examples & usecase
Let's understand What is IIFE (Immediately Invoked Function Expression) in Javascript with examples & usecase
The Daily Frontend
What is IIFE (Immediately Invoked Function Expression) in Javascript - The Daily Frontend
Detailed explanation about IIFE (Immediately Invoked Function Expression) in javascript and why we need it and when to use it.
DevScrolls
9. What happens when we do this?
function bark() { console.log('Woof!'); } bark.animal = 'dog';
function bark() { console.log('Woof!'); } bark.animal = 'dog';
Answer: A
This is possible in JavaScript, because functions are objects! (Everything besides primitive types are objects)
A function is a special type of object. The code you write yourself isn't the actual function. The function is an object with properties. This property is invocable.
This is possible in JavaScript, because functions are objects! (Everything besides primitive types are objects)
A function is a special type of object. The code you write yourself isn't the actual function. The function is an object with properties. This property is invocable.
11. What's the output?
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const member = new Person('Lydia', 'Hallie');
Person.getFullName = function() {
return
};
console.log(member.getFullName());
function Person(firstName, lastName) {
this.firstName = firstName;
this.lastName = lastName;
}
const member = new Person('Lydia', 'Hallie');
Person.getFullName = function() {
return
${this.firstName} ${this.lastName};};
console.log(member.getFullName());
DevScrolls
11. What's the output? function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastName; } const member = new Person('Lydia', 'Hallie'); Person.getFullName = function() { return ${this.firstName} ${this.lastName}; }; co…
Output?
Anonymous Poll
22%
A: TypeError
22%
B: SyntaxError
43%
C: Lydia Hallie
13%
D: undefined undefined
DevScrolls
Output?
Answer: A
In JavaScript, functions are objects, and therefore, the method getFullName gets added to the constructor function object itself. For that reason, we can call Person.getFullName(), but member.getFullName throws a TypeError.
If you want a method to be available to all object instances, you have to add it to the prototype property:
In JavaScript, functions are objects, and therefore, the method getFullName gets added to the constructor function object itself. For that reason, we can call Person.getFullName(), but member.getFullName throws a TypeError.
If you want a method to be available to all object instances, you have to add it to the prototype property:
Person.prototype.getFullName = function() { return ${this.firstName} ${this.lastName}; };
DevScrolls
12. What's the output?
Answer: A
For sarah, we didn't use the new keyword. When using new, this refers to the new empty object we create. However, if you don't add new, this refers to the global object!
We said that this.firstName equals "Sarah" and this.lastName equals "Smith". What we actually did, is defining global.firstName = 'Sarah' and global.lastName = 'Smith'. sarah itself is left undefined, since we don't return a value from the Person function.
For sarah, we didn't use the new keyword. When using new, this refers to the new empty object we create. However, if you don't add new, this refers to the global object!
We said that this.firstName equals "Sarah" and this.lastName equals "Smith". What we actually did, is defining global.firstName = 'Sarah' and global.lastName = 'Smith'. sarah itself is left undefined, since we don't return a value from the Person function.
13. What are the three phases of event propagation?
Anonymous Poll
19%
A: Target > Capturing > Bubbling
19%
B: Bubbling > Target > Capturing
39%
C: Target > Bubbling > Capturing
22%
D: Capturing > Target > Bubbling
DevScrolls
13. What are the three phases of event propagation?
Answer: D
During the capturing phase, the event goes through the ancestor elements down to the target element. It then reaches the target element, and bubbling begins.
During the capturing phase, the event goes through the ancestor elements down to the target element. It then reaches the target element, and bubbling begins.
What's the output?
let number = 0; console.log(number++); console.log(++number); console.log(number);
let number = 0; console.log(number++); console.log(++number); console.log(number);
Anonymous Poll
27%
A: 1 1 2
24%
B: 1 2 2
32%
C: 0 2 2
16%
D: 0 1 2