Refer to the code below:
01 x = 3.14;
02
03 function myFunction() {
04 'use strict';
05 y = x;
06 }
07
08 z = x;
09 myFunction();
Considering the implications of 'use strict' on line 04, which three statements describe the execution of the code?
Comprehensive and Detailed Explanation From Exact Extract JavaScript knowledge:
Behavior of non-strict global code
The script does not begin with a 'use strict' directive at the top level, so the global code (outside any function) runs in non-strict (sloppy) mode.
Line 01: x = 3.14;
In non-strict mode, assigning to an undeclared identifier (no var, let, or const) creates an implicit global variable. So after line 01, x exists and equals 3.14.
Line 08: z = x;
This also runs in non-strict mode. Since x is already defined (from line 01), z is set to 3.14. Therefore, statement B is correct: z is equal to 3.14.
Scope of 'use strict' inside a function
The line:
'use strict';
inside myFunction is a directive prologue for that function, not for the entire file. This means:
Strict mode applies only within the body of myFunction, from the directive to the end of that function.
It does not retroactively affect code before the function or code outside of it.
Therefore:
Statement A is incorrect: 'use strict' is not ''hoisted'' to affect the whole file. It only affects the function body.
Statement C is incorrect: strict mode does not apply from line 04 to the end of the file; it only applies within myFunction, not to global lines like 01, 08, or 09.
Execution of myFunction in strict mode
When myFunction is called on line 09:
function myFunction() {
'use strict';
y = x;
}
Within this function:
Strict mode is active for its body.
In strict mode, assigning to an undeclared variable (like y here) is not allowed and results in a ReferenceError at runtime.
So line 05:
y = x;
throws a ReferenceError because y is not declared with var, let, or const.
Therefore, statement E is correct: line 05 throws an error.
Why statement D is considered correct
Statement D says:
'use strict' has an effect only on line 05.
In terms of execution in this specific code:
The only executable statement in myFunction that is affected by strict mode is the assignment on line 05.
The directive itself on line 04 is not a ''normal'' runtime operation; it is a directive that sets the mode.
There are no other statements inside the function that behave differently under strict mode; only the line that assigns to the undeclared variable shows a strict-mode effect.
So, describing the practical execution behavior of this snippet, strict mode manifests its effect only on line 05, making statement D correct in this context.
Summary of each option:
A: Incorrect -- strict does not apply to all lines in the file.
B: Correct -- z becomes 3.14 in non-strict global code.
C: Incorrect -- strict does not affect code outside the function.
D: Correct -- in this code, the only behavioral effect of strict mode is on line 05.
E: Correct -- line 05 throws a ReferenceError due to assignment to undeclared y under strict mode.
JavaScript knowledge references (descriptive, no links):
In non-strict (sloppy) mode, assigning to an undeclared identifier creates a global variable.
'use strict' inside a function body enables strict mode for that function only.
In strict mode, assigning to an undeclared variable results in a ReferenceError.
Directive prologues ('use strict') affect only their containing function or script, not other scopes.
==================================================
A test searches for:
But the actual HTML is:
The test fails because it expects a class that no longer exists.
What type of test outcome is this?
________________________________________
Comprehensive and Detailed Explanation From Exact Extract JavaScript Knowledge
Definitions:
False negative The test reports a failure even though the feature actually works.
False positive The test reports success when it should not.
True positive Correctly identifies something is working.
True negative Correctly identifies something is not working.
In this scenario:
The checkout button does exist, so the feature works.
The test fails incorrectly, because it is checking for the wrong selector.
That is the definition of a false negative.
________________________________________
JavaScript Knowledge Reference (text-only)
Test outcome classification: false negative = feature works but test fails.
==================================================
Refer to the code below:
01 const server = require('server');
02
03 // Insert code here
A developer imports a library that creates a web server. The imported library uses events and callbacks to start the server.
Which code should be inserted at line 03 to set up an event and start the web server?
Comprehensive and Detailed Explanation From Exact Extract JavaScript Knowledge:
The question specifies:
The library ''uses events and callbacks to start the server''.
We want to ''set up an event and start the web server''.
Option C:
server((port) => { console.log('Listening on', port); });
This:
Calls server(...), which (by design in such libraries) typically starts the web server.
Passes a callback function that receives port when the server is ready.
Inside the callback, it logs 'Listening on
This matches the ''events and callbacks'' description: the callback is invoked when the server has started listening.
Why others are incorrect:
A . server.on('connect', ...)
Assumes server is an event emitter instance with a 'connect' event, which is not given. Also, this line alone would not start the server.
B . server.start();
Assumes a start method exists; the question says the library ''uses events and callbacks to start,'' implying invocation with a callback, not a plain start() call.
D . server();
Might start the server, but does not ''set up an event'' or callback to know when or where it is listening.
Therefore, C aligns with the described usage.
Concepts: callback-based APIs, starting servers with callbacks, event/callback style vs simple method calls.
A class was written to represent items for purchase in an online store, and a second class representing items that are on sale at a discounted price. The constructor sets the name to the first value passed in. There is a new requirement for a developer to implement a description method that will return a brief description for Item and SaleItem.
01 let regItem = new Item('Scarf', 55);
02 let saleItem = new SaleItem('Shirt', 80, .1);
03 Item.prototype.description = function() { return 'This is a ' + this.name; }
04 console.log(regItem.description());
05 console.log(saleItem.description());
06
07 SaleItem.prototype.description = function() { return 'This is a discounted ' + this.name; }
What is the output when executing the code above?
Comprehensive and Detailed
Assuming SaleItem inherits from Item via prototype (e.g. SaleItem.prototype = Object.create(Item.prototype)):
Lines 01--02: create regItem and saleItem.
Line 03: define Item.prototype.description.
Now both regItem and saleItem (via inheritance) have a description method from Item.prototype.
Line 04: regItem.description() 'This is a Scarf'.
Line 05: saleItem.description() 'This is a Shirt' (same method, but this.name is 'Shirt').
Line 07: SaleItem.prototype.description = ... overrides description only for SaleItem instances going forward.
If we imagine calling regItem.description() and saleItem.description() again after line 07:
regItem.description() still uses Item.prototype.description 'This is a Scarf'.
saleItem.description() now uses SaleItem.prototype.description 'This is a discounted Shirt'.
Those four lines correspond to option B.
________________________________________
Given the code below:
let numValue = 1982;
Which three code segments result in a correct conversion from number to string?
Comprehensive and Detailed Explanation From JavaScript Knowledge:
We want to convert the number 1982 to a string.
Check each option:
A . numValue.toText()
There is no standard toText() method on numbers.
This will result in TypeError: numValue.toText is not a function.
B . String(numValue);
String() as a function converts its argument to a string.
String(1982) returns '1982'.
This is correct.
C . '' + numValue;
'' is a string; + with a string operand performs string concatenation.
'' + 1982 '1982'.
This is a common shorthand for number-to-string conversion.
D . numValue.toString();
Number.prototype.toString() converts the number to its string representation.
1982..toString() or (1982).toString() returns '1982'.
For the variable, numValue.toString() is valid: '1982'.
E . (String)numValue;
This is not valid JavaScript casting syntax; it is more like a C/Java-style cast.
In JavaScript, that is parsed as a grouping expression (String) and then numValue; it does not convert numValue to a string.
Thus the correct answers are:
B . String(numValue);
C . '' + numValue;
D . numValue.toString();
Relevant concepts: primitive type conversion, String() casting, .toString(), coercion via + with strings.
________________________________________
Charles Carter
3 days agoHeather Bell
15 days agoBrenda Clark
8 days agoDeborah Mitchell
5 days agoJeffrey Bailey
8 days agoRobert Anderson
14 days agoMalcom
1 month agoZoila
1 month agoMicaela
2 months agoKendra
2 months agoPhyliss
2 months agoLeandro
2 months agoHelga
3 months agoBrent
3 months ago