Files
wehub-resource-sync dde272c4b8
i18n - Build Validation / Validate i18n Builds (24) (push) Has been cancelled
CI - Node.js / Lint (24) (push) Has been cancelled
CI - Node.js / Build (24) (push) Has been cancelled
CI - Node.js / Test (24) (push) Has been cancelled
CI - Node.js / Test - Upcoming Changes (24) (push) Has been cancelled
CI - Node.js / Test - i18n (italian, 24) (push) Has been cancelled
CI - Node.js / Test - i18n (portuguese, 24) (push) Has been cancelled
CD - Docker - GHCR Images / Build and Push Images (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 11:55:53 +08:00

97 lines
2.2 KiB
Markdown

---
id: 56bbb991ad1ed5201cd392cf
title: Write Reusable JavaScript with Functions
challengeType: 1
forumTopicId: 18378
dashedName: write-reusable-javascript-with-functions
---
# --description--
In JavaScript, we can divide up our code into reusable parts called <dfn>functions</dfn>.
Here's an example of a function:
```js
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.
# --instructions--
<ol>
<li>
Create a function called <code>reusableFunction</code> which prints the string <code>Hi World</code> to the dev console.
</li>
<li>
Call the function.
</li>
</ol>
# --before-each--
```js
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;
}
```
# --hints--
`reusableFunction` should be a function.
```js
assert(typeof reusableFunction === 'function');
```
If `reusableFunction` is called, it should output the string `Hi World` to the console.
```js
assert(testConsole());
```
You should call `reusableFunction` once it is defined.
```js
const functionStr = reusableFunction && __helpers.removeWhiteSpace(reusableFunction.toString());
const codeWithoutFunction = __helpers.removeWhiteSpace(__helpers.removeJSComments(code)).replace(/reusableFunction\(\)\{/g, '');
assert(/reusableFunction\(\)/.test(codeWithoutFunction));
```
# --seed--
## --seed-contents--
```js
```
# --solutions--
```js
function reusableFunction() {
console.log("Hi World");
}
reusableFunction();
```