
λ²μμ: λΉμ μ μν κΈ°μ¬λ₯Ό κ²μνμ΅λλ€ , μΈν°λ·° μ€μ κ°λ°μ μ§μμμκ² κ°μ₯ μμ£Ό μ 곡λ©λλ€. μ΄ κΈ°μ¬λ μ°μ μ΄λ³΄ νλ‘κ·Έλλ¨Έμκ² μ μ©ν κ²μ
λλ€.
κΈ°μ νμ¬μ μΈν°λ·°λ μ€λ«λμ νμ κ° λμ΄ μμ΅λλ€. μ΄λ λλΌμ΄ μΌμ΄ μλλλ€. μ±κ³΅μ μΌλ‘ μΈν°λ·°λ₯Ό ν΅κ³Όνλ©΄ μ’μ μ§μ μ μ»μ μ μλ κΈ°νκ° μ 곡λ©λλ€. κ·Έλ¬λ 볡μ‘ν λ¬Έμ λ₯Ό ν΄κ²°ν΄μΌ νλ κ²½μ°κ° λ§κΈ° λλ¬Έμ μ΄λ 그리 κ°λ¨νμ§ μμ΅λλ€.
λν λλΆλΆμ κ²½μ° μ΄λ¬ν μμ
μ λλΆλΆμ μ§μμκ° μνν μμ
κ³Ό κ΄λ ¨μ΄ μμ§λ§ μ¬μ ν ν΄κ²°ν΄μΌ ν©λλ€. λλ‘λ Googleμ΄λ λ€λ₯Έ μμ€μ νμΈνμ§ μκ³ κ²μνμμ μ΄λ₯Ό μνν΄μΌ νλ κ²½μ°λ μμ΅λλ€. μ, μν©μ μ μ°¨ λ³νκ³ μμΌλ©° μΌλΆ νμ¬μμλ μ΄λ¬ν μΈν°λ·°λ₯Ό ν¬κΈ°νκ³ μμ§λ§ λ§μ κ³ μ©μ£Όλ μ¬μ ν μ΄λ¬ν μ ν΅μ κ³ μνκ³ μμ΅λλ€. μ΄ κΈμ ꡬμ§μμ μμ
μΌλ‘ μμ£Ό μ¬μ©λλ μΌλ°μ μΈ JavaScript μμ
μ λν λΆμμ λ€λ£Ήλλ€.
μλ¦Ό: "Habr"μ λͺ¨λ λ μλ₯Ό μν - "Habr" νλ‘λͺ¨μ μ½λλ₯Ό μ¬μ©νμ¬ Skillbox κ³Όμ μ λ±λ‘ν λ 10 λ£¨λΈ ν μΈ.
Skillboxλ λ€μμ κΆμ₯ν©λλ€. μ€κΈ° μ½μ€ .
κ°μ₯ μ€μν κ²μ μΈν°λ·°λ₯Ό μ² μ ν μ€λΉνλ κ²μ λλ€.
μ, μ 무λ₯Ό μ΄ν΄λ³΄κΈ° μ μ μΌλ°μ μΈ λ©΄μ μ€λΉ νμ μ΄ν΄λ³΄κ² μ΅λλ€.
κ°μ₯ μ€μν κ²μ 미리 μ€λΉνλ κ²μ λλ€. μκ³ λ¦¬μ¦κ³Ό λ°μ΄ν° ꡬ쑰λ₯Ό μΌλ§λ μ κΈ°μ΅νλμ§ ν μ€νΈνκ³ μ΅μνμ§ μμ μμμ λν μ§μμ ν₯μμν€μΈμ. μΈν°λ·° μ€λΉμ λμμ΄ λλ μ¨λΌμΈ νλ«νΌμ΄ λ§μ΄ μμ΅λλ€. μ°λ¦¬λ μ‘°μΈν©λλ€ , , ΠΈ .
κ²°μ μ ν° μλ¦¬λ‘ λ§νλ λ²μ λ°°μ°λ κ²μ κ°μΉκ° μμ΅λλ€. λ¨μν μΉ νμ κΈμ μ°λ κ²(λλ μ‘°μ©ν μ»΄ν¨ν°μ μ½λλ₯Ό μ λ ₯νλ κ²)μ΄ μλ μ§μμμκ² μμ μ΄ νλ μΌμ λν΄ μλ €μ£Όλ κ²μ΄ μ’μ΅λλ€. μ΄λ κ² νλ©΄ μ½λμ μ€μκ° μμ§λ§ μΌλ°μ μΌλ‘ ν΄κ²° λ°©λ²μ΄ μ ννλλΌλ μ±κ³΅ κ°λ₯μ±μ΄ λμμ§λλ€.
λ¬Έμ ν΄κ²°μ μμνκΈ° μ μ λ¬Έμ λ₯Ό μ΄ν΄ν΄μΌ ν©λλ€. μ΄λ€ κ²½μ°μλ μμ μ νΌμμ μΌλ‘ μ΄ν΄ν λ€μ μλͺ»λ κΈΈλ‘ κ° μλ μμ΅λλ€. λ©΄μ κ΄μκ² λͺ κ°μ§ λͺ νν μ§λ¬Έμ νλ κ²μ΄ μ’μ΅λλ€.
PCκ° μλ μμΌλ‘ μ½λ μμ± μ°μ΅μ ν΄μΌ ν©λλ€. μΈν°λ·° μ€μ μ§μμμκ² ννΈλ μλ μμμ΄ μλ λ§μ»€μ νμ΄νΈλ³΄λκ° μ 곡λλ κ²½μ°κ° μμ΅λλ€. ν΄κ²°μ± μ μ°Ύμ λ μ½λλ₯Ό μ’ μ΄λ 보λμ μ§μ μ μ΄ λλ κ²μ΄ μ’μ΅λλ€. λͺ¨λ κ²μ λ¨Έλ¦Ώμμ λ΄μλλ©΄ μ€μν κ²μ μμ΄λ²λ¦΄ μλ μμ΅λλ€.
JavaScriptμ ν νλ¦Ώ μμ
μ΄λ¬ν μμ μ€ μΌλΆλ μ΄λ―Έ μ΅μν κ²μ λλ€. λΉμ·ν λ¬Έμ λ₯Ό ν΄κ²°ν΄μΌ νλ μΈν°λ·°λ₯Ό νκ±°λ JavaScriptλ₯Ό λ°°μ°λ©΄μ μ°μ΅ν΄ λ³Έ μ μ΄ μμ κ²μ λλ€. μ, μ΄μ λ€μ λ¬Έμ λ₯Ό ν΄κ²°νκ³ κ³Όμ μ λν μμΈν μ€λͺ μ λ€μ μ°¨λ‘μ λλ€.
νλ¬Έ
νλ¬Έμ μΌλ°μ μΈ λ°©ν₯κ³Ό λ°λ λ°©ν₯ λͺ¨λμμ μ νν λμΌνκ² μ½νλ λ¨μ΄, λ¬Έμ₯ λλ λ¬Έμ μνμ€μ λλ€. μλ₯Ό λ€μ΄, βAnnaβλ νλ¬Έμ΄μ§λ§ βtableβκ³Ό βJohnβμ κ·Έλ μ§ μμ΅λλ€.
μ€ν μ΄μ§
λ¬Έμμ΄μ΄ μ£Όμ΄μ§λ©΄; λ¬Έμμ΄μ΄ νλ¬Έμ΄λ©΄ trueλ₯Ό λ°ννκ³ κ·Έλ μ§ μμΌλ©΄ falseλ₯Ό λ°νν μ μλ ν¨μλ₯Ό μμ±ν΄μΌ ν©λλ€. μ΄ κ²½μ° κ³΅λ°±κ³Ό ꡬλμ μ κ³ λ €ν΄μΌ ν©λλ€.
palindrome('racecar') === μ°Έ
νλ¬Έ('ν
μ΄λΈ') === κ±°μ§
μμ μ λΆμν΄ λ΄ μλ€
μ¬κΈ°μ μ£Όμ μμ΄λμ΄λ λ¬Έμμ΄μ λ€μ§λ κ²μ λλ€. "μλ°©ν₯" λ¬Έμμ΄μ΄ μλ λ¬Έμμ΄κ³Ό μμ ν λμΌνλ©΄ νλ¬Έμ λ°μ κ²μ΄λ―λ‘ ν¨μλ trueλ₯Ό λ°νν΄μΌ ν©λλ€. κ·Έλ μ§ μλ€λ©΄ κ±°μ§μ λλ€.
κ²°μ
λ€μμ νλ¬Έμ ν΄κ²°νλ μ½λμ λλ€.
const palindrome = str => {
// turn the string to lowercase
str = str.toLowerCase()
// reverse input string and return the result of the
// comparisong
return str === str.split('').reverse().join('')
}첫 λ²μ§Έ λ¨κ³λ μ λ ₯ λ¬Έμμ΄μ λ¬Έμλ₯Ό μλ¬Έμλ‘ λ³ννλ κ²μ λλ€. μ΄λ νλ‘κ·Έλ¨μ΄ λμλ¬Έμλ λ€λ₯Έ μ΄λ€ κ²λ λΉκ΅νμ§ μκ³ λ¬Έμ μ체λ₯Ό λΉκ΅νλ€λ κ²μ 보μ₯ν©λλ€.
λ λ²μ§Έ λ¨κ³λ λΌμΈμ λ€μ§λ κ²μ λλ€. μ΄λ μ΄λ ΅μ§ μμ΅λλ€. .split() λ©μλ(λ¬Έμμ΄ λΌμ΄λΈλ¬λ¦¬)λ₯Ό μ¬μ©νμ¬ λ°°μ΄λ‘ λ³νν΄μΌ ν©λλ€. κ·Έλ° λ€μ .reverse()(λ°°μ΄ λΌμ΄λΈλ¬λ¦¬)λ₯Ό μ¬μ©νμ¬ λ°°μ΄μ λ€μ§μ΅λλ€. λ§μ§λ§ λ¨κ³λ .join()(λ°°μ΄ λΌμ΄λΈλ¬λ¦¬)μ μ¬μ©νμ¬ μλ°©ν₯ λ°°μ΄μ λ¬Έμμ΄λ‘ λ³ννλ κ²μ λλ€.
μ΄μ ν΄μΌ ν μΌμ "μλ°©ν₯" λ¬Έμμ΄μ μλ λ¬Έμμ΄κ³Ό λΉκ΅νμ¬ κ²°κ³Όκ° true λλ falseλ₯Ό λ°ννλ κ²μ λλ€.
νΌμ¦λ²μ¦
μΈν°λ·°μμ κ°μ₯ μΈκΈ° μλ μμ μ€ νλμ λλ€.
μ€ν μ΄μ§
1λΆν° nκΉμ§μ μ«μλ₯Ό μ½μμ μΈμνλ ν¨μλ₯Ό μμ±ν΄μΌ ν©λλ€. μ¬κΈ°μ nμ λ€μ 쑰건μ λ°λΌ ν¨μκ° λ§€κ° λ³μλ‘ μ¬μ©νλ μ μμ λλ€.
- 3μ λ°°μ λμ fizzλ₯Ό μΆλ ₯ν©λλ€.
- 5μ λ°°μμΈ μ«μ λμ λ²μ¦λ₯Ό μΆλ ₯ν©λλ€.
- 3κ³Ό 5μ λ°°μμΈ μ«μ λμ fizzbuzzκ° μΆλ ₯λ©λλ€.
μ
νΌμ¦λ²μ¦(5)
κ²°κ³Ό
// 1
// 2
// νμ°
// 4
//λ²μ μ리
μμ μ λΆμν΄ λ΄ μλ€
μ¬κΈ°μ κ°μ₯ μ€μν κ²μ JavaScriptλ₯Ό μ¬μ©νμ¬ λ°°μλ₯Ό μ°Ύλ λ°©λ²μ λλ€. λͺ¨λλ¬μ€ μ°μ°μ λλ λλ¨Έμ§ - %λ₯Ό μ¬μ©νμ¬ κ΅¬νν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ μ«μλ₯Ό λλ λ λλ¨Έμ§λ₯Ό νμν μ μμ΅λλ€. λλ¨Έμ§κ° 0μ΄λ©΄ 첫 λ²μ§Έ μ«μκ° λ λ²μ§Έ μ«μμ λ°°μλΌλ μλ―Έμ λλ€.
12% 5 // 2 -> 12λ 5μ λ°°μκ° μλλλ€.
12% 3 // 0 -> 12λ 3μ λ°°μμ
λλ€.
λ°λΌμ 12λ₯Ό 5λ‘ λλλ©΄ 2κ° λκ³ λλ¨Έμ§λ 2κ° λ©λλ€. 12λ₯Ό 3μΌλ‘ λλλ©΄ 4κ° λκ³ λλ¨Έμ§λ 0μ΄ λ©λλ€. 첫 λ²μ§Έ κ²½μ° 12λ 5μ λ°°μκ° μλκ³ λ λ²μ§Έ κ²½μ° , 12λ 3μ λ°°μμ λλ€.
κ²°μ
μ΅μ μ μ루μ μ λ€μ μ½λμ λλ€.
const fizzBuzz = num => {
for(let i = 1; i <= num; i++) {
// check if the number is a multiple of 3 and 5
if(i % 3 === 0 && i % 5 === 0) {
console.log('fizzbuzz')
} // check if the number is a multiple of 3
else if(i % 3 === 0) {
console.log('fizz')
} // check if the number is a multiple of 5
else if(i % 5 === 0) {
console.log('buzz')
} else {
console.log(i)
}
}
}μ΄ ν¨μλ 쑰건문μ μ¬μ©νμ¬ νμν κ²μ¬λ₯Ό μννκ³ μ¬μ©μκ° μꡬνλ κ²°κ³Όλ₯Ό μμ±ν©λλ€. λ¬Έμ μμλ if...else λ¬Έμ μμμ μ£Όμν νμκ° μμ΅λλ€. μ¦, μ΄μ€ 쑰건(&&)μΌλ‘ μμνκ³ μ¬λ¬ μ«μλ₯Ό μ°Ύμ μ μλ κ²½μ°λ‘ λλ©λλ€. κ²°κ³Όμ μΌλ‘ μ°λ¦¬λ λͺ¨λ μ΅μ μ λ€λ£Ήλλ€.
μ² μ λ°κΎΈκΈ°
μ΄λ λ€λ₯Έ λ¨μ΄μ λͺ¨λ λ¬Έμλ₯Ό κ°μ μ«μλ‘ ν¬ν¨νμ§λ§ μμκ° λ€λ₯Έ λ¨μ΄μ μ΄λ¦μ λλ€.
μ€ν μ΄μ§
λ λ¬Έμμ΄μ΄ μ² μ λ°κΎΈκΈ°μΈμ§, λμλ¬Έμλ μ€μνμ§ μμμ§ νμΈνλ ν¨μλ₯Ό μμ±ν΄μΌ ν©λλ€. λ¬Έμλ§ κ³μ°λ©λλ€. 곡백μ΄λ ꡬλμ μ κ³ λ €λμ§ μμ΅λλ€.
anagram('finder', 'Friend') β> μ°Έ
anagram('hello', 'bye') β> κ±°μ§
μμ μ λΆμν΄ λ΄ μλ€
μ¬κΈ°μ μ€μν μ μ λ μ λ ₯μ€μ κ° λ¬Έμμ κ° μ€μ μ«μλ₯Ό νμΈν΄μΌ νλ€λ κ²μ λλ€.
νμΈλ β> f: μΉκ΅¬ 1λͺ
β> f: 1
λ: 1 λ₯΄: 1
n: 1 λ: 1
d: 1 μ μ: 1
μ μ: 1 n: 1
r: 1 d: 1
μ² μ λ°κΎΈκΈ° λ°μ΄ν°λ₯Ό μ μ₯νλ €λ©΄ JavaScript κ°μ²΄ 리ν°λ΄κ³Ό κ°μ ꡬ쑰λ₯Ό μ νν΄μΌ ν©λλ€. μ΄ κ²½μ° ν΅μ¬μ λ¬Έμμ λ¬Έμμ΄κ³ κ°μ νμ¬ μ€μμ λ°λ³΅λλ νμμ λλ€.
λ€λ₯Έ μ‘°κ±΄μ΄ μμ΅λλ€:
- λΉκ΅ν λ λ¬Έμμ λ/μλ¬Έμκ° κ³ λ €λμ§ μλμ§ νμΈν΄μΌ ν©λλ€. κ°λ¨ν λ λ¬Έμμ΄μ λͺ¨λ μλ¬Έμ λλ λλ¬Έμλ‘ λ³νν©λλ€.
- λΉκ΅μμ λ¬Έμκ° μλ λͺ¨λ νλͺ©μ μ μΈν©λλ€. ν¨κ» μμ νλ κ²μ΄ κ°μ₯ μ’μ΅λλ€. .
κ²°μ
// helper function that builds the
// object to store the data
const buildCharObject = str => {
const charObj = {}
for(let char of str.replace(/[^w]/g).toLowerCase()) {
// if the object has already a key value pair
// equal to the value being looped over,
// increase the value by 1, otherwise add
// the letter being looped over as key and 1 as its value
charObj[char] = charObj[char] + 1 || 1
}
return charObj
}
// main function
const anagram = (strA, strB) => {
// build the object that holds strA data
const aCharObject = buildCharObject(strA)
// build the object that holds strB data
const bCharObject = buildCharObject(strB)
// compare number of keys in the two objects
// (anagrams must have the same number of letters)
if(Object.keys(aCharObject).length !== Object.keys(bCharObject).length) {
return false
}
// if both objects have the same number of keys
// we can be sure that at least both strings
// have the same number of characters
// now we can compare the two objects to see if both
// have the same letters in the same amount
for(let char in aCharObject) {
if(aCharObject[char] !== bCharObject[char]) {
return false
}
}
// if both the above checks succeed,
// you have an anagram: return true
return true
}μ¬μ©μ μ£Όμ μμ μ‘°κ°μμ. μ΄ λ©μλλ κ°μ²΄μ λνλλ κ²κ³Ό λμΌν μμλ‘ μ΄λ¦μ΄λ ν€λ₯Ό ν¬ν¨νλ λ°°μ΄μ λ°νν©λλ€. μ΄ κ²½μ° λ°°μ΄μ λ€μκ³Ό κ°μ΅λλ€.
['f', 'i', 'n', 'd', 'e', ββββ'r']
μ΄λ κ² νλ©΄ λλ 루νλ₯Ό μννμ§ μκ³ λ κ°μ²΄μ μμ±μ μ»μ μ μμ΅λλ€. λ¬Έμ κ° μλ κ²½μ° .length μμ±κ³Ό ν¨κ» μ΄ λ°©λ²μ μ¬μ©νμ¬ λ λ¬Έμμ΄μ λ¬Έμ μκ° λμΌνμ§ νμΈν μ μμ΅λλ€. μ΄λ μ² μ λ°κΎΈκΈ°μ μ€μν κΈ°λ₯μ λλ€.
λͺ¨μ κ²μ
μΈν°λ·°μμ μμ£Ό λ±μ₯νλ λ§€μ° κ°λ¨ν μμ μ λλ€.
μ€ν μ΄μ§
λ¬Έμμ΄μ μΈμλ‘ μ¬μ©νκ³ λ¬Έμμ΄μ ν¬ν¨λ λͺ¨μ μλ₯Ό λ°ννλ ν¨μλ₯Ό μμ±ν΄μΌ ν©λλ€.
λͺ¨μμ "a", "e", "i", "o", "u"μ
λλ€.
μ :
findVowels('hello') // β> 2
findVowels('μ΄μ ') // β> 0
κ²°μ
κ°μ₯ κ°λ¨ν μ΅μ μ λ€μκ³Ό κ°μ΅λλ€.
const findVowels = str => {
let count = 0
const vowels = ['a', 'e', 'i', 'o', 'u']
for(let char of str.toLowerCase()) {
if(vowels.includes(char)) {
count++
}
}
return count
}.includes() λ©μλ μ¬μ©μ μ£Όμνλ κ²μ΄ μ€μν©λλ€. λ¬Έμμ΄κ³Ό λ°°μ΄ λͺ¨λμ μ¬μ©ν μ μμ΅λλ€. λ°°μ΄μ νΉμ κ°μ΄ ν¬ν¨λμ΄ μλμ§ νμΈνλ λ° μ¬μ©ν΄μΌ ν©λλ€. μ΄ λ©μλλ λ°°μ΄μ μ§μ λ κ°μ΄ ν¬ν¨λμ΄ μμΌλ©΄ trueλ₯Ό λ°ννκ³ , κ·Έλ μ§ μμΌλ©΄ falseλ₯Ό λ°νν©λλ€.
λ¬Έμ μ λν λ μ§§μ ν΄κ²°μ± μ΄ μμ΅λλ€.
const findVowels = str => {
const matched = str.match(/[aeiou]/gi)
return matched ? matches.length : 0
}μ΄λ ν¨μ¨μ μΈ κ²μμ ꡬνν μ μλ .match() λ©μλλ₯Ό μ¬μ©ν©λλ€. λ©μλ μΈμμΈ μ κ·μμ΄ μ§μ λ λ¬Έμμ΄ λ΄μμ λ°κ²¬λλ©΄ λ°ν κ°μ μΌμΉνλ λ¬Έμμ λ°°μ΄μ λλ€. μΌμΉνλ νλͺ©μ΄ μμΌλ©΄ .match()λ nullμ λ°νν©λλ€.
νΌλ³΄λμΉ
λ€μν μμ€μ μΈν°λ·°μμ μ°Ύμ μ μλ κ³ μ μ μΈ μμ μ λλ€. νΌλ³΄λμΉ μμ΄μ κ° νμ μ«μκ° μ΄μ λ μ«μμ ν©μΈ μΌλ ¨μ μ«μλΌλ μ μ κΈ°μ΅ν κ°μΉκ° μμ΅λλ€. λ°λΌμ μ²μ 0κ°μ μ«μλ 1, 1, 2, 3, 5, 8, 13, 21, 34, XNUMXμ κ°μ΅λλ€.
μ€ν μ΄μ§
νΉμ μνμ€μ nλ²μ§Έ λ μ½λλ₯Ό λ°ννλ ν¨μλ₯Ό μμ±ν΄μΌ νλ©°, nμ ν¨μμ μΈμλ‘ μ λ¬λλ μ«μμ λλ€.
νΌλ³΄λμΉ(3) // β> 2
μ΄ μμ μλ μΈμμ μ§μ λ νμλ§νΌ 루νλ₯Ό ν΅κ³Όνμ¬ μ μ ν μμΉμ κ°μ λ°ννλ μμ μ΄ ν¬ν¨λ©λλ€. λ¬Έμ λ₯Ό μ κΈ°νλ μ΄λ¬ν λ°©λ²μλ 루νλ₯Ό μ¬μ©ν΄μΌ ν©λλ€. λμ μ¬κ·λ₯Ό μ¬μ©νλ©΄ λ©΄μ κ΄μ κΈ°μκ² νκ³ λͺ κ°μ§ μΆκ° μ μλ₯Ό μ€ μ μμ΅λλ€.
κ²°μ
const fibonacci = num => {
// store the Fibonacci sequence you're going
// to generate inside an array and
// initialize the array with the first two
// numbers of the sequence
const result = [0, 1]
for(let i = 2; i <= num; i++) {
// push the sum of the two numbers
// preceding the position of i in the result array
// at the end of the result array
const prevNum1 = result[i - 1]
const prevNum2 = result[i - 2]
result.push(prevNum1 + prevNum2)
}
// return the last value in the result array
return result[num]
}κ²°κ³Ό λ°°μ΄μμλ μνμ€μ κ° νλͺ©μ΄ μ΄μ λ μ«μμ ν©μ΄κΈ° λλ¬Έμ μ²μ λ μ«μκ° μ리μ¦μ ν¬ν¨λ©λλ€. 맨 μ²μμλ λ€μ μ«μλ₯Ό μ»κΈ° μν΄ μ¬μ©ν μ μλ λ κ°μ μ«μκ° μμΌλ―λ‘ λ£¨νκ° μλμΌλ‘ μ«μλ₯Ό μμ±ν μ μμ΅λλ€. κ·Έλ¬λ μ°λ¦¬κ° μκ³ μλ―μ΄ μ²μ λ μ«μλ νμ 0κ³Ό 1μ λλ€. λ°λΌμ κ²°κ³Ό λ°°μ΄μ μλμΌλ‘ μ΄κΈ°νν μ μμ΅λλ€.
μ¬κ·μ κ²½μ° λͺ¨λ κ²μ΄ λ κ°λ¨νλ©΄μλ λμμ λ 볡μ‘ν΄μ§λλ€.
const fibonacci = num => {
// if num is either 0 or 1 return num
if(num < 2) {
return num
}
// recursion here
return fibonacci(num - 1) + fibonacci(num - 2)
}μ°λ¦¬λ fibonacci()λ₯Ό κ³μ νΈμΆνμ¬ μ μ λ μμ μ«μλ₯Ό μΈμλ‘ μ λ¬ν©λλ€. μ λ¬λ μΈμκ° 0 λλ 1μ΄λ©΄ μ€μ§λ©λλ€.
μΆλ ₯
νλ‘ νΈμλ λλ JavaScript κ°λ°μ μ§μ μ λν μΈν°λ·°λ₯Ό νλ€λ©΄(νΉν μ£Όλμ΄ λ λ²¨μΈ κ²½μ°) μ΄λ―Έ μ΄λ¬ν μμ μ μ νμ κ°λ₯μ±μ΄ λμ΅λλ€. κ·Έλ¬λ μμ§ λ°κ²¬νμ§ λͺ»νλ€λ©΄ ν₯ν μ μ΄λ μΌλ°μ μΈ κ°λ°μλ μ μ©ν μ μμ΅λλ€.
Skillboxλ λ€μμ κΆμ₯ν©λλ€.
- μ¨λΌμΈ κ°μ’ μ μ© .
- μ¨λΌμΈ μ½μ€ .
- μ€κΈ° μ½μ€ .
μΆμ² : habr.com
