Last active
March 27, 2018 16:50
-
-
Save chadwithuhc/5bd25c02769c8161d5afa50f405fd87d to your computer and use it in GitHub Desktop.
JavaScript Refactors
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Refactor to use `querySelector()` instead | |
document.getElementsByClassName("message")[0].innerHTML = 'Hello World' | |
// Solution | |
// `querySelector()` will select the first item it finds | |
document.querySelector(".message").innerHTML | |
// --- | |
// Refactor to use `querySelectorAll()` instead | |
document.getElementsByTagName("span") | |
// Solution | |
// `querySelectorAll()` will select the all matching items it finds | |
// Using `querySelector()` and `querySelectorAll()` is common practice since jQuery made selection by CSS query popular | |
document.querySelectorAll("span") | |
// --- | |
// Refactor to use `.classList` instead | |
var messageDiv = document.querySelector('.message'); | |
messageDiv.setAttribute("class", "message end-message"); | |
// Solution | |
// Using `.classList` we can ensure we are not overridding any prior `class` on the element | |
var messageDiv = document.querySelector('.message'); | |
messageDiv.classList.add("message", "end-message"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Refactor the following to use a ternary operator instead | |
if (message) { | |
document.getElementsByClassName("message")[0].innerHTML = message | |
} else { | |
document.getElementsByClassName("message")[0].innerHTML = "Current Player: " + currentPlayer | |
} | |
// Solution | |
document.getElementsByClassName("message")[0].innerHTML = message ? message : "Current Player: " + currentPlayer |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment