curriculum/challenges/english/blocks/basic-javascript/56bbb991ad1ed5201cd392cf.md
In JavaScript, we can divide up our code into reusable parts called <dfn>functions</dfn>.
Here's an example of a function:
function functionName() {
console.log("Hello World");
}
You can call or <dfn>invoke</dfn> this function by using its name followed by parentheses, like this: functionName(); Each time the function is called it will print out the message Hello World on the dev console. All of the code between the curly braces will be executed every time the function is called.
function testConsole() {
var originalConsole = console;
var nativeLog = console.log;
var hiWorldWasLogged = false;
console.log = function (message) {
if (message === 'Hi World') {
console.warn(message);
hiWorldWasLogged = true;
}
if (nativeLog.apply) {
nativeLog.apply(originalConsole, arguments);
} else {
var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');
nativeLog(nativeMsg);
}
};
reusableFunction();
console.log = nativeLog;
return hiWorldWasLogged;
}
reusableFunction should be a function.
assert(typeof reusableFunction === 'function');
If reusableFunction is called, it should output the string Hi World to the console.
assert(testConsole());
You should call reusableFunction once it is defined.
const functionStr = reusableFunction && __helpers.removeWhiteSpace(reusableFunction.toString());
const codeWithoutFunction = __helpers.removeWhiteSpace(__helpers.removeJSComments(code)).replace(/reusableFunction\(\)\{/g, '');
assert(/reusableFunction\(\)/.test(codeWithoutFunction));
function reusableFunction() {
console.log("Hi World");
}
reusableFunction();