본문 바로가기
Web/자바스크립트

javaScript #3 :: 반복문 for | array.length | typeOf() | indexOf() | slice()

by 긴모양 2020. 4. 23.

노션 : we-code / TIL / 3일차 20.04.22

 

반목문 for

: for(시작값; 끝값; 증가값)

const home = "대전";
let cities = ["서울", "대전", "대구", "부산", "광주", "제주도"];


for (let i = 0; i <= 5; i++) {
   if (cities[i] === home) {console.log("아, "+ cities[i] +" 사시는군요");}
}

 

❓if문에 성립되지 않으면 for이 바로 종료가 되는건가? → 아니다. i값은 계속 증가하므로 다시 for문을 돈다.

 

array가 존재하고 array의 첫번째 값과 마지막 값을 더하고 싶다면?
: 가장 먼저 array의 길이를 찾고 실행문을 작성한다.

  • array.length : array에 들어있는 것들의 갯수
  • array.length -1 : array의 마지막에 들어있는 값
 

How to sort an array of integers correctly

Trying to get the highest and lowest value from an array that I know will contain only integers seems to be harder than I thought. var numArray = [140000, 104, 99]; numArray = numArray.sort();

stackoverflow.com

 

데이터타입

  • undefined : 정의되지 않은 변수
  • null
  • boolean
  • number : 숫자
  • string : 문자열
  • object : 객체

 

typeof 연산자 

: typeof연산자를 통해 값과 변수는 무슨 데이터 타입인지 알 수 있다. typeof로 나오는 값은 위의 데이터타입과 function으로 나올 수 있다.

console.log(typeof 변수명);
//해당 변수명에 들어간 데이터 타입을 알 수 있다.

let nothing = null;
console.log(typeof nothing); //object
/*object가 출력된다. 그 이유는 null이 빈 객체를 참조하고 있기 때문이다.*/

console.log(typeof []);
//object출력된다. 배열은 확장된 객체로 typeof로 배열을 확인시 object라고 생각하기!

 

undefined

:변수 정의시 초기화 하지 않으면 변수에 undefined가 할당된다.

let nothing; //변수 선언만 함.
console.log(nothing == undefined); //true

 

boolean

: true와 false가 있다. 서로 다른 데이터 타입이 boolean으로 변환되는 경우가 많다.

(true로 변환되는 값)

  • 문자열 : 비어 있지 않은 문자열 모두
  • 숫자 : 0이 아닌 모든 숫자
  • 객체 : 모든 객체

(false로 변환되는 값)

  • 문자열 : ""(빈문자열)
  • 숫자 : 0 or NaN
  • 객체 : null
  • undefinded
let msg = "message";
if(msg) {
}
//if문에 조건이 없지만 문자열은 ""를 제외하고 모두 true이기에 (msg)는 true가 된다. = 조건문 실행 가능

let number = 0;
if(number) {
}
//숫자 0은 false로 변환되기에 if문이 실행되지 않는다.

 

대소문자 변경하기 (string 함수들 참고하기)

 

JavaScript String Reference

JavaScript String Reference JavaScript Strings A JavaScript string stores a series of characters like "John Doe". A string can be any text inside double or single quotes: String indexes are zero-based: The first character is in position 0, the second in 1,

www.w3schools.com

: string타입을 사용하면 대문자와 소문자를 구분한다. 

  • toUpperCase
  • toLowCase
let myName = "gwon ran";

let upperLastName = myName.toUpperCase();
let lowerLastName = myName.toLowerCase();

console.log(myName);
console.log(upperLastName); //대문자로 변환
console.log(lowerLastName); //소문자로 변환

: myName 이라는 변수에 String형의 값을 할당하면 myName 변수는 String형 변수가 되는 것입니다.그러면 myName은 String형이 제공하는 모든 함수를 사용가능

❗️name이라는 변수는 사용을 하지 않기로 해요.

 

let name = prompt("당신의 이름을 알려주세요.");
: prompt()를 사용하면 alret처럼 값을 입력할 수 있는 박스가 나온다.

 

 

length

  • array.length
  • string.length
  • number형에는 length라는 속성이 존재하지 않는다. string형으로의 전환이 필요하다.
let number = 123456;
let numberString = "123456"

console.log(number.length); //undefined
console.log(numberString.length); //11

 

문자열 찾기 indexOf()

: 특정 문자열이 들어가있는지 확인을 하고싶다. indexOf는 몇번째 순서에 해당 문자열이 있는지를 알려준다. 해당 문자열이 없다면 -1을 반환한다. = 내가 원하는 문자열의 시작점을 알려줌!

let info = "JavaScript는 프로래밍 언어이다.";
let firstChar = info.indexOf("프로래밍"); 
console.log(info, firstChar);


문자열 자르기 slice()

if (firstChar !== -1) { 
  info = info.slice(0, firstChar) + "프로그래밍" + info.slice(firstChar+4, info.length); 
}
//"JavaScript는 "까지 잘라주고 = info.slice(0, firstChar)
console.log(info);

: slice()는 텍스트를 잘라주는 string 함수

1. info.slice(0, firstChar) : index0부터 firstChar인 프로래밍의 프 앞까지 잘라준다.
2. info.slice(firstChar+4, info.length) : 밍 뒤 부터 끝까지

 

String.prototype.slice()

slice() 메소드는 문자열의 일부를 추출하면서 새로운 문자열을 반환합니다.

developer.mozilla.org

slice(잘릴 시작위치, 잘릴 끝위치)
//첫 번째 문자의 위치는 0이고 두 번째 문자의 위치는 1입니다.

slice(하나의 값)
//내가 설정한 값부터 끝까지

 

 

 

댓글