TIL_23_with Wecode 013 JavaScript about String

JIEUNยท2021๋…„ 2์›” 21์ผ
0
post-thumbnail

๐Ÿฑโ€๐Ÿ‘คString <-> Number ๋ณ€ํ™˜
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์–ธ์–ด์˜ ํŠน์ง• ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์˜ค๋ฅ˜์—†์ด ๋ชจ๋‘ ์ •์ƒ์œผ๋กœ ๋‚˜์˜ต๋‹ˆ๋‹ค.

let a = 10; // Number
a = "๋‚˜๋Š” String์ธ๋ฐ.."; // String
console.log(a);
//๊ฒฐ๊ณผ: ๋‚˜๋Š” String์ธ๋ฐ..

๋‹ค๋ฅธ ์–ธ์–ด์—์„œ๋Š” ๋ณ€์ˆ˜์— ์–ด๋–ค ๊ฐ’์„ ํ• ๋‹นํ•ด์„œ ๋ณ€์ˆ˜์˜ type์ด ํ™•์ •๋˜๋ฉด, ๊ทธ ํ›„์— ๋‹ค๋ฅธ type์˜ ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

let a = '5'; // String
a = 5; // Number
console.log(a) //5
let a = '900';  
let b = 350; 
let c = Math.random(); 
let d = '5' + 5; 
a
//"900"
b
//350
c
//0.19758219165286195
d
//"55"
console.log('200'+'10'); //20010
console.log('200'-'10'); //190
console.log(200+'11'); //20011
console.log('200'+11); //20011
console.log('200'-'์•ˆ๋…•'); //NaN

NaN์€ Not a number ๋ผ๋Š” ๋œป์ž…๋‹ˆ๋‹ค.

์•ž ์‹œ๊ฐ„์— ๋ฐฐ์› ๋˜ "+"์˜ ํŠน์ง•์„ ํ•œ ๋ฒˆ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

alert("๊น€์˜ˆ๋ฆฌ" + "๋‹˜ ์•ˆ๋…•ํ•˜์„ธ์š”."); 
let place = "์œ„์ฝ”๋“œ";
alert(place + "์— ์˜ค์‹  ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค"); 

์ˆซ์ž๋ผ๋ฆฌ์˜ ๋”ํ•˜๊ธฐ๋Š” ๋ฌผ๋ก ์ด๊ณ ,
String๋ผ๋ฆฌ ๋ฌธ์ž๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

console.log("200"-"์•ˆ๋…•");

ํ•˜์ง€๋งŒ ๋บ„์…ˆ์˜ ๊ฒฝ์šฐ, ์˜ค๋กœ์ง€ ์ˆซ์ž์—๋งŒ ์‚ฌ์šฉ๋˜๋Š” ์—ฐ์‚ฐ์ด์ฃ .
"์•ˆ๋…•ํ•˜์„ธ์š”" - "์•ˆ๋…•" = ??
String์˜ ๊ฒฝ์šฐ,
์™ ์ง€ ๊ฐ™์€ "์•ˆ๋…•"์„ ๋นผ๋‹ˆ๊นŒ "ํ•˜์„ธ์š”"๋งŒ ๋‚จ์œผ๋ฉด ์ข‹๊ฒ ์ง€๋งŒ
์ „ ์„ธ๊ณ„ ๊ณตํ†ต์ ์œผ๋กœ ์•ฝ์†๋œ ์—ฐ์‚ฐ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์—ฐ์‚ฐ์ž…๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— NaN ์ด๋ผ๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

14์„ธ ๋ฏธ๋งŒ์˜ ์‚ฌ๋žŒ์ด ๊ฐ€์ž…ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

let birthYear = "2000";
let currentYear = 2019;
if (currentYear - birthYear < 14) {
  alert("๊ฐ€์ž…ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.");
}
console.log(2019+"2000"); //20192000
console.log(2019-"2000"); //19

์ปดํ“จํ„ฐ๊ฐ€ +์˜ ์–‘์ชฝ์„ ๋ณด๊ณ , ํ•˜๋‚˜๋ผ๋„ String์ด ์žˆ์œผ๋ฉด
๋ฌธ์ž์—ด๋กœ์„œ ํ•ฉ์ณ์ค๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ๋ฐ -๋ผ๋ฉด, String์˜ ๋งˆ์ด๋„ˆ์Šค๋Š” ์กด์žฌ ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ
์–‘์ชฝ์˜ ๊ฐ’์„ ๋ชจ๋‘ ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๊ณ„์‚ฐํ•ด์ค๋‹ˆ๋‹ค.
๋ฌผ๋ก  ์œ„์˜ ์ฝ”๋“œ๊ฐ€ ์ž˜ ๋™์ž‘๋˜๊ธด ํ•˜์ง€๋งŒ,
ํ•จ๊ป˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๋™๋ฃŒ๊ฐ€ ์ถฉ๋ถ„ํžˆ ์˜คํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค.

๊ณ„์‚ฐ์ด ์ž˜ ๋˜๋”๋ผ๋„ ํ…์ŠคํŠธ๋กœ ํ‘œํ˜„๋œ ์ˆซ์ž๋Š”,
๊ผญ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์„œ ๊ณ„์‚ฐ์„ ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด Number ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ String์—์„œ Numberํ˜•์œผ๋กœ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

var birthYearInput = "2000";
console.log(typeof birthYearInput); //string
var numberBirthYear = Number(birthYearInput);
console.log(typeof numberBirthYear); //number

Numberํ•จ์ˆ˜ ๋ง๊ณ  parseInt, parseFloat ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

parseInt("1.901"); //1
parseFloat("1.901"); //1.901
Number("1.901"); //1.901
parseInt("200") + 1; //201

Numberํ˜•์—์„œ Stringํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

var numberAsNumber = 1234; 
var numberAsString = numberAsNumber.toString();
console.log(numberAsNumber, typeof numberAsNumber);
// 1234 "number"
console.log(numberAsString, typeof numberAsString);
// 1234 string
  • ์—ฐ์‚ฐ์˜ ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ์•„๋ž˜์™€ ๊ฐ™์ด๋„ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
var numberAsNumber = 1234; 
var numberAsString = 1234 + "";
console.log(numberAsNumber, typeof numberAsNumber);
// 1234 "number"
console.log(numberAsString, typeof numberAsString);
// 1234 string

๐Ÿ‘Assignment
์šฐ๋ฆฌ๋‚˜๋ผ๋Š” ๊ตญ๋ฏผ์—ฐ๊ธˆ์„ ๋งŒ 65์„ธ ๋ถ€ํ„ฐ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
nationalPensionRemainingYearCount ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”.

  • nationalPensionRemainingYearCount ๋Š” age_string ์ด๋ผ๋Š” input์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  • age_string์€ ๋‚˜์ด ๊ฐ’์ธ๋ฐ stringํ˜• ๊ฐ’์œผ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ์–ด์ง„ ๋‚˜์ด๋ถ€ํ„ฐ ๋ช‡๋…„์ด ์ง€๋‚˜์•ผ ๊ตญ๋ฏผ์—ฐ๊ธˆ์„ ๋ฐ›์„์ˆ˜ ์žˆ๋Š”์ง€ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”.
  • ๋ฆฌํ„ด ๊ฐ’์œผ๋กœ๋Š” ๋‹ค์Œ ๋ฌธ์žฅ ์ฒ˜๋Ÿผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
"์•ž์œผ๋กœ 20๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค"

์˜ˆ๋ฅผ ๋“ค์–ด, age_string ๊ฐ’์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด:

"35"

๋ฆฌํ„ด ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

"์•ž์œผ๋กœ 30๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค"

๋‹ต๋ณ€:

function nationalPensionRemainingYearCount(age_string) {
  let numberAge = Number(age_string);
  let years = 65 - numberAge;
  return "์•ž์œผ๋กœ "+years+"๋…„ ๋‚จ์œผ์…จ์Šต๋‹ˆ๋‹ค";
}

์œ„์—์„œ ๋ฐฐ์šด Number ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ string์ด์—ˆ๋˜ age_string ์„ ์ˆซ์ž๋กœ ๋ฐ”๊ฟ”์ค๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ณ€์ˆ˜๋ฅผ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€ํ•˜์—ฌ, ๋‚จ์€ ๋…„์ˆ˜๋ฅผ ์•Œ๋ ค์ค„ ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€