開発環境
- macOS Sierra - Apple (OS)
- Emacs (Text Editor)
- Safari(Web browser)
Head First HTML5 Programming (Elisabeth Robson (著)、Eric Freeman (著)、O'Reilly Media)の Chapter 4.(JavaScript Functions and Objects: Serious JavaScript)、CODE MAGNETS(No. 2661) を取り組んでみる。
CODE MAGNETS(No. 2661)
コード(Emacs)
HTML5
<button id="run0">run</button> <button id="clear0">clear</button> <pre id="output0"></pre> <script src="sample2.js"></script>
JavaScript
let btn0 = document.querySelector('#run0'), btn1 = document.querySelector('#clear0'), pre0 = document.querySelector('#output0'); let logAlert = (msg) => { pre0.textContent += msg + '\n'; alert(msg); }; let logPrompt = (msg) => { pre0.textContent += msg + '\n'; return prompt(msg); }; let getTimeFromString = (timeString) => { let theTime = new Date(), time = timeString.match(/(\d+)(?::(\d\d))?\s*(p?)/); theTime.setHours(parseInt(time[1], 10) + (time[3] ? 12 : 0)); theTime.setMinutes(parseInt(time[2], 10) || 0); return theTime.getTime(); }; let Woof = (title, genre, rating, showtimes) => { let that = {}; that.title = title; that.genre = genre; that.rating = rating; that.showtimes = showtimes; that.getNextShowing = () => { let now = new Date().getTime(); for (let i = 0; i < showtimes.length; i += 1) { let t = getTimeFromString(showtimes[i]); if ((t - now) > 0) { return `Next showing of ${title} is ${showtimes[i]}`; } } }; return that; }; let output = () => { let movie1 = Woof('Plan 9 from Outer Space', 'Cult Classic', 5, ['3:00pm', '7:00pm', '11:00pm']); Object.keys(movie1).forEach((key) => { pre0.textContent += movie1[key] + '\n'; }); pre0.textContent += movie1.getNextShowing() + '\n'; }; btn0.onclick = output; btn1.onclick = () => { pre0.textContent = ''; }; output();
0 コメント:
コメントを投稿