--- id: cf1111c1c11feddfaeb9bdef title: Generate Random Fractions with JavaScript challengeType: 1 videoUrl: 'https://scrimba.com/c/cyWJJs3' --- ## Description <section id='description'> Random numbers are useful for creating random behavior. JavaScript has a <code>Math.random()</code> function that generates a random decimal number between <code>0</code> (inclusive) and not quite up to <code>1</code> (exclusive). Thus <code>Math.random()</code> can return a <code>0</code> but never quite return a <code>1</code> <strong>Note</strong><br>Like <a href='storing-values-with-the-assignment-operator' target='_blank'>Storing Values with the Equal Operator</a>, all function calls will be resolved before the <code>return</code> executes, so we can <code>return</code> the value of the <code>Math.random()</code> function. </section> ## Instructions <section id='instructions'> Change <code>randomFraction</code> to return a random number instead of returning <code>0</code>. </section> ## Tests <section id='tests'> ```yml tests: - text: <code>randomFraction</code> should return a random number. testString: assert(typeof randomFraction() === "number", '<code>randomFraction</code> should return a random number.'); - text: The number returned by <code>randomFraction</code> should be a decimal. testString: assert((randomFraction()+''). match(/\./g), 'The number returned by <code>randomFraction</code> should be a decimal.'); - text: You should be using <code>Math.random</code> to generate the random decimal number. testString: assert(code.match(/Math\.random/g).length >= 0, 'You should be using <code>Math.random</code> to generate the random decimal number.'); ``` </section> ## Challenge Seed <section id='challengeSeed'> <div id='js-seed'> ```js function randomFraction() { // Only change code below this line. return 0; // Only change code above this line. } ``` </div> ### After Test <div id='js-teardown'> ```js (function(){return randomFraction();})(); ``` </div> </section> ## Solution <section id='solution'> ```js function randomFraction() { return Math.random(); } ``` </section>