dash-case(kebab-case)

단어와 단어 사이가 꼬챙이로 끼워져 있는거 같다고 하여 캐밥 케이스 라고도 한다. 

HTML, CSS (주로 사용)

Today-is-Friday-September-14th

dash기호로 컴퓨터는 하나의 단어로 인식하게 된고
사람은 띄어쓰기를 대신하는 것을 인지할 수 있다.

 

snake_case

인식하는 단어들이 underbar라는 기호를 통해서 묶인 표기법.

HTML, CSS (주로 사용)

Today_is_Friday_September_14th

 

camelCase

소문자를 첫 시작으로 단어마다 대문자로 구분하는 표기법.

JS (주로 사용)

todayIsFridaySeptember14th

 

ParcelCase

대문자로 첫 시작을하여 camelCase와 동일하게 단어마다 대문자로 구분하는 표기법이다.

JS (특수 경우 사용)

TodayIsFridaySeptember14th

new키워드 가지고 있는 생성자 함수를 살펴볼 때 파스탈 케이스를 통해 함수 이름 명시하게 된다.

 

Zero-based numbering

숫자는 0부터 센다.

let girl = ['Jane', 'Diana', 'Evelyn'];

console.log(girl[0]); // 'Jane'출력될 것이다.		//0부터 시작된다.
console.log(girl[1]); // 'Diana'
console.log(girl[1]); // 'Evelyn'

console.log(new Date('2024-01-29').getDay()); // 1, (뜻)월요일
console.log(new Date('2024-01-30').getDay()); // 2, (뜻)화요일
console.log(new Date('2024-01-31').getDay()); // 3, (뜻)수요일

 

0번째 아이템을 접근해서 콘솔 로그로 출력하는 것이다. 

 

주석 (Comments)

// 한 줄 주석	(주로 사용)

/* 슬래시와 애스터리스크로 한 줄 주석의 시작과 끝을 명시 */	(CSS에서 주로 사용)

/*
 여러 줄
 주석(메모)
 주석(메모2)
 사용 가능
 */

맥(OS) 단축키 : command /

윈도우(Window) 단축키 : contol /

반응형

함수(function)

자바스크립트로 만들 수 있는 여러가지 특정 동작/기능들을 실제로 실행할 수 있는 코드의 집합이다. 

i.e. 명령들을 감싸고 있는 집합을 뜻한다. 그리고 프로그래밍은 거의 함수로 이루어져 있다.  

function helloEve(){ 			 // 함수 선언할 때는 function 키워드 명시. 
  // 실행 코드 (코드 내용)  			    그리고 원하는 함수 이름'helloEve' 작성. 
  					//(소괄호 1set){중괄호 1set} 기호 사용. => 코드들의 집합
  console.log(123); 			// {중괄호 1set} 사이에 명령 코드를 넣는다. 
};					// i.e. 여기에서는 console창에 log를 남기고, 
					// 그 데이터는 숫자 123 임을 명시하는 것이다. => 코드 내용
// 함수 호출해서 실행
helloEve(); // 123

 

반환(return)

함수 내에서 return 함수를 사용하여 자바스크립트 데이터를 함수 밖으로 내보내는 것.

그리고 내보내진 함수를 새로운 변수에 할당해서 추가적으로 사용할 수 있다. 

function returnAge() {
  return 38;
};

let a = returnAge(); // 반환된 데이터'123'을 키워드let을 사용하는 함수a가 받아서 returnEve함수가
		    //호출되면 (호출을 하면 실행이 되어야 한다.)
console.log(a); // 함수에서 반환된 123 출력

콘솔창

 

매개변수(Parameters)인수(Arguments)

함수가 호출되는 부분 sum(7, 4)에서 데이터를 집어넣고

데이터를 받아줄 변수 sum(a, b)

// 함수 선언
function sum(a,b) { // (2-1) 이 함수 내에서 사용하는 변수를 각각 a, b 이름으로 정의하였는데, 
		    // 이 변수를 매개변수(Parameters)하고 한다. 
  return a+b; // (2-2) 내부 처리 및 함수 실행을 통해 밖으로 내보내 진다. 
};

// 재사용
let a = sum(7,4); // (1) 데이터 인수들을 함수가 받아 (3) 그 값을 변수a에 담아 밖으로 내보낸다. 
		  // **7과 4는 매개변수를 받는 인수(Arguments)라고 한다. 
let b = sum(6,3);
let c = sum(2,4);

console.log(a,b,c); // (4) 변수 a,b,c 출력 > 11,9,6

 

기명 함수

이름이 있는 함수를 '기명 함수'라고 한다.

// 함수를 선언하는 것
function Evelyn(){  // 함수 이름('Evelyn'부분)에는 원하는 이름을 넣어주면 된다.
  console.log('Evelyn!');
};

// 함수를 호출하는 것
Evelyn();

콘솔창

 

익명 함수

이름이 없는 함수는 '익명 함수'라고 한다.

이러한 익명 함수들은 데이터로써 활용되거나 변수(예시 name과같은)에 할당되어서 활용되기도 한다. 

// 함수를 표현하는 것
let name = function (){ // 해당 function = 익명 함수
  console.log('What is your name?'); 
};

// 함수를 호출하는 것
name();

콘솔창

 

객체 데이터

'name', 'age'와 같은 속성함수 데이터가 들어가 있는 것메소드(Method) 라고 한다.

함수(function)가 실행되기 위해 반환(return)해야 한다. (아래 코드 참조)

return 'this'키워드 뒤에 점표기법을 통해서 'name' 데이터를 변환하고 있다. 

여기서 'this'가 소속되어 있는 객체 데이터를 의미하게 되는 것이다. 

i.e. Evelyn 안에서 getName을 실행하게 되면서 Evelyn 안에 있는 name의 값 'Evelyn'이 getName 밖으로 빠져나가는(반환) 구조이다. (예시1)

// 객체 데이터
const Evelyn = { // const는 재할당 불가
  name: 'Evelyn', // 데이터(1) - 문자 데이터
  age: 22, // 데이터(2) - 숫자 데이터
  // 메소드(Method)
  getName: function (){
    return this.name; // 데이터(3) - 익명 함수가 데이터에 들어 있다.(함수의 표현)
  }
};

const herName= Evelyn.getName();
console.log(herName);
// 또는
console.log(Evelyn.getName());

예시1

getName에서 빠져나온 데이터는 herName에 할당되면서 

console에 그 결과를 출력하여 확인하게 되는 것이다. 

콘솔창

반응형

1. for loop 형식

for(let i=0; i<10; i++){
  console.log("나의 가치를 마음대로 판단하지마!!",i)
}
➞ Console창 프린트 : 

나의 가치를 마음대로 판단하지마!! 0
나의 가치를 마음대로 판단하지마!! 1
나의 가치를 마음대로 판단하지마!! 2
나의 가치를 마음대로 판단하지마!! 3
나의 가치를 마음대로 판단하지마!! 4
나의 가치를 마음대로 판단하지마!! 5
나의 가치를 마음대로 판단하지마!! 6
나의 가치를 마음대로 판단하지마!! 7
나의 가치를 마음대로 판단하지마!! 8
나의 가치를 마음대로 판단하지마!! 9

시작점을 0으로 셋팅한다. ➞ let i=0;
for loop의 3가지 조건

  • 초기화식
  • 초기화식
  • 초기화식
i 값이 변하는 과정 : 

☛ i 는 0부터 시작한다. console.log 결과값 "나의 가치를 마음대로 판단하지마!!" 를 0과 함께 출력 된다. 
그리고 나가려고 하니까 for loop 이어서 두번째 턴 때는 i++ 즉, i 를 1씩 증가 시켜준다. 그리하여 i 는 0 + 1 = 1 이 된다. 
1 이 출력되기 전에 조건식 (let i=0; i<10; i++)으로 와서 말한다. 
"i = 1 인데, 1은 10보다 커, 작아?"
"작으니까 결과창으로 출력해줘!"

 console.log 결과값 "나의 가치를 마음대로 판단하지마!!" 를 1과 함께 출력 된다. 
그리고 나가려고 하니까 for loop 이어서 세번째 턴 때도 i++ 증가시켜 i 는 1 + 1 = 2 가 된다. 
2 이 출력되기 전에 조건식 (let i=0; i<10; i++)으로 와서 말한다. 
"i = 2 인데, 2은 10보다 커, 작아?"
"작으니까 결과창으로 출력해줘!"

 console.log 결과값 "나의 가치를 마음대로 판단하지마!!" 를 2과 함께 출력 된다. 

.
.
.

해당 조건은 (let i=0; i<10; i++) 9가 나올 때까지 반복된다. 
종료점은 9까지로 셋팅한다. ➞ i<10;
반복 시점에서 1씩 증가한다. ➞ i++

* i = i+1i++ 와 똑같다.

* i++ 는 i+=1 과 똑같다. (많이 쓰이는거라 1 만 문법은 간략하게 만들었다고 함)

for(let i=0; i<=10; i++){
  if(i%2==0){
    console.log("내 인생에 감정 담지 마!!", i)
  }
}
➞ Console창 프린트 : 

내 인생에 감정 담지 마!! 0
내 인생에 감정 담지 마!! 2
내 인생에 감정 담지 마!! 4
내 인생에 감정 담지 마!! 6
내 인생에 감정 담지 마!! 8
인생에 감정 담지 !! 10

i 를 2로 나누었을 때, 나머지는 0 이다. ➞ (i%2==0) ☛ 즉, 짝수이다.
한 칸씩 점프하는 코드 보다, 두 칸씩 점프하는 ⬇︎ 코드가 조금 더 빠르게 구동된다. 
for(let i=0; i<=10; i+=2){
  if(i%2==0){
    console.log("졸려..오늘 진짜 쉼없이 하루를 보냈다.", i)
  }
}
➞ Console창 프린트 : 

졸려..오늘 진짜 쉼없이 하루를 보냈다. 0
졸려..오늘 진짜 쉼없이 하루를 보냈다. 2
졸려..오늘 진짜 쉼없이 하루를 보냈다. 4
졸려..오늘 진짜 쉼없이 하루를 보냈다. 6
졸려..오늘 진짜 쉼없이 하루를 보냈다. 8
졸려..오늘 진짜 쉼없이 하루를 보냈다. 10
i 를 2씩 증가한다. 

* i = i+2i+=2 와 똑같다. 

* i = i+5  i+=5 와 똑같다. 

 

2. 이중 for loop

구구단 만들기
for(let i=2; i<=9; i++){
  for(let j=1; j<=9; j++){
    console.log(i+'*'+j+'='+i*j)
  }
}
➞ Console창 프린트 : 

2*1=2
2*2=4
2*3=6
2*4=8
2*5=10
2*6=12
2*7=14
2*8=16
2*9=18
3*1=3
3*2=6
3*3=9
3*4=12
3*5=15
3*6=18
3*7=21
3*8=24
3*9=27
4*1=4
4*2=8
4*3=12
4*4=16
4*5=20
4*6=24
4*7=28
4*8=32
4*9=36
5*1=5
5*2=10
5*3=15
5*4=20
5*5=25
5*6=30
5*7=35
5*8=40
5*9=45
6*1=6
6*2=12
6*3=18
6*4=24
6*5=30
6*6=36
6*7=42
6*8=48
6*9=54
7*1=7
7*2=14
7*3=21
7*4=28
7*5=35
7*6=42
7*7=49
7*8=56
7*9=63
8*1=8
8*2=16
8*3=24
8*4=32
8*5=40
8*6=48
8*7=56
8*8=64
8*9=72
9*1=9
9*2=18
9*3=27
9*4=36
9*5=45
9*6=54
9*7=63
9*8=72
9*9=81

 

3. while문 (for loop을 다 분해 해놓은 느낌)

let i=2    ⇠ 시작점 셋팅
while(i<10){
  console.log("while문 실행",i)
  i++;  ⇠ 종료조건 셋팅
}
➞ Console창 프린트 : 

while문 실행 2
while문 실행 3
while문 실행 4
while문 실행 5
while문 실행 6
while문 실행 7
while문 실행 8
while 실행 9

* for 문의 (let i=2; i<=9; i++) 이것과 똑같다. 

 

while loop vs. for loop

let i=2
while(buttonclick == true){
  console.log("while문 실행",i)
  i++;
}
while loop

정확히 어느시점까지 라고 언급할 수 없지만, buttonclick 되는 시점에 계속 반복해줘
let fruit = ["banana", "apple", "grapes", "mango"]

for(let i=0; i<fruit.length; i++){
  console.log(fruit[i])
}
for loop

∙ for문의 존재 이유는 array배열 때문
∙ 정확한 시점까지 반복해줘 

➞ Console창 프린트 : 

banana
apple
grapes
mango
* length : 알아서 아이템 개수를 가져와 입력한다.

for loop 문제

문제 1
1부터 100까지 더하는 for문을 만들고 결과를 출력하시오.
   

https://sublivan.tistory.com/4

 

기본자료형 & 참조자료형

Primitive data type & Reference data type 자바에는 기본 자료형 (primitive data type) / 참조 자료형(reference data type) 이 있다. 기본 자료형 (primitive data type) 논리형 : boolean 문자형 : char 정수형 : byte, short, int, long

sublivan.tistory.com

 

문제 2
1부터 100까지 홀수만 출력하자.
   

 

문제 3
1부터 50까지 369결과를 프린트하자.
1
2
 
4
5 

...생략 


28 

 

 
짝짝 
   

 

문제 4
주어진 숫자가 소수이면 true 아니면 false 출력하는 프로그램을 짜시오.
   

https://drexpp.tistory.com/entry/Java-%EC%9E%90%EB%B0%94-%EC%86%8C%EC%88%98-%ED%8C%90%EB%B3%84%ED%95%A8%EC%88%98-isPrime

 

[Java, 자바] 소수 판별함수 (isPrime)

public int isPrime(int n) { for (int i = 2; i

drexpp.tistory.com

 

반응형

컴퓨터는 if문의 연속이라고 할 정도로 중요하다. 

 

1. if문 형식

if(조건문){
조건이 충족하면 할일들
}
if(true){
   console.log("조건은 참 입니다.")
}
if(false){
   console.log("조건은 참 입니다.")
}else {
console.log("거짓 입니다.")
}

*여기서 if (false) {A} else {B}"만약에 A가 거짓이라면, B로 프린트 해다오." 라는 뜻이 된다.

 

예제1)

let age = 21 21살 학생이 있습니다. 
if (age >20){
   console.log("운전이 가능합니다.")
} else {
   console.log("운전이 불가능 합니다.")
}

➞ Console창 "운전이 가능합니다." 프린트
만약에 나이가 20살이 넘으면 "운전이 가능합니다."
아니라면 "운전이 불가능 합니다."

결과창 ➞ 학생 나이가 21살 이므로 "운전이 가능합니다."

 

예제2)

let age = 18 18살 학생이 있습니다. 
if (age >20){
   console.log("운전이 가능 합니다.")
} else if (age >= 18) {
   console.log("오토바이 운전이 가능합니다.")
} else
   console.log("운전이 불가능 합니다.")


*이렇게 조건 하나를 더 붙일 수 있다.
*모든 조건을 충족하지 않을 경우, else로 와서 프린트 한다.
만약에 나이가 20살이 넘으면 "운전이 가능합니다."
그렇지 않으면 나이가 18살보다 크거나 같으면 "오토바이 운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

 

⭐︎예제3)

let age = 21 21살 학생이 있습니다. 
if (age >= 18) {
   console.log ("오토바이 운전이 가능합니다.")
} else if (age >20) {
   console.log ("운전이 가능합니다.")
} else {
   console.log ("운전이 불가능 합니다.")
}

Console창 프린트 -> 오토바이 운전이 가능합니다.
만약에 나이가 18살 보다 크거나 같으면 "오토바이 운전이 가능합니다."
그렇지 않으면 나이가 20살이 넘으면 "운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

* if문은 첫 조건에서 참이 나오면 이어지는 모든 조건을 보지 않고 종료 해버리는 특징이 있다. 

* 그리고 if문은 조건들의 순서 임으로 범위를 작은 것부터 큰 순으로 두는 것이 좋다. 

* (age >= 18) ➞ 18,19,20... (범위가 더 넓기에 위 처럼 콘솔창에 첫 범위에 대한 답을 하고 종료한 것.)

* (age > 20) ➞ 21,22,23...

let age = 21 21살 학생이 있습니다. 
if (age >=18 && age<20) {
   console.log ("오토바이 운전만 가능합니다.")
} else if (age>20) {
   console.log ("운전이 가능합니다.")
} else {
   console.log ("운전이 불가능 합니다.")
}

Console창 프린트 -> 운전이 가능합니다.
<- && 잊고 안 쓰는 사람들 정말 많다!! 꼭꼭! 기억하고 쓸 것!

만약에 나이가 18살 보다 크거나 같고 나이가 20살 보다 적다면 "오토바이 운전이 가능합니다."
그렇지 않으면 나이가 20살이 넘으면 "운전이 가능합니다."
그것도 아니라면 "운전이 불가능 합니다."

* (age >=18 && age<20)은 18<=age<20 이랑 같은 뜻이다. 

* 즉, 범위가 작아졌기에 두번째 조건으로 넘어가는 것이 고려 가능해 진다. 

* 코드를 (18<=age<20)으로 쓰고 싶으나 컴퓨터는 알아보지 못하기에 (age>=18 && age<20)로 조건 두 개를 따로 띄어서 쓴다.

(&&연산 : 앞과 뒤 모두 참이어야 참이다. 둘 중 하나라도 거짓이 있다면 전체다 모두 거짓이 된다.)

* || 연산 (OROR연산자) : 둘 다 참이거나, 하나만 참이어도 참이다. 둘 다 거짓일 때만 거짓이다.)

 

예제4)

👑 Logic - 조건문 안에 조건문 👑
let age = 35
let licence = true (let licence = false)
35살 사람이 있습니다.
면허가 있으면 true이다. (없으면 false로 표시)
if(age>20){
  if(licence == true){
    console.log("운전이 가능합니다.")
  } else {
    console.log("면허를 따고 다시 오세요.")
  }
else {
  console.log("운전이 불가능 합니다.")
}
만약에 나이가 20살이 넘고 운전면허가 있다면
➞ YES : "운전이 가능합니다."
NO : "면허를 따고 오세요."
그렇지도 않다면 "운전이 불가능 합니다." (20살 미만 해당)

코딩에서 = 은 오늘쪽에 있는 것을 왼쪽에 넣는다는 의미로 쓰인다. 

하지만 코딩하다 보면 같다(equal)의 의미를 표현해줄 기호가 필요하여 == 로 대체하게 된다. 

A == B : A는 B와 같다. 
A != B : A는 B와 같지 않다.

 

if문과 비슷한 switch, 삼항연산식

if문 switch 삼사연산식
let menu = 1

if(menu == 1){
console.log("물건 사기")
} else if(menu == 2){
console.log("잔고 확인")
} else if(menu == 3){
console.log("히스토리 확인")
} else{
console.log("홈으로 돌아가기")
}
switch (menu){
   case 1 : 
      console.log("물건 사기")
      break;
  case 2 : 
      console.log("잔고 확인")
      break;
  case 3 : 
      console.log("히스토리 확인")
      break;
   defult : 
      console.log("홈으로 돌아가기")
}
 

 

다양한 조건 표현방식 호환성
let menu = 1

if(1<menu && menu<4){
console.log("물건 사기")
} else if(menu == 2){
console.log("잔고 확인")
} else if(menu == 3){
console.log("히스토리 확인")
} else{
console.log("홈으로 돌아가기")
}
• 사용할 수 있는 범위가 조금 더 제한적 
 switch문은 case가 값 하나로 딱 떨어지는
   경우에만 사용 가능
 
표현 불가
➞ 에러 난다
1<ℬ<4
1보다 크고 4보다 작은 값으로 2,3을 직접 명시 해줘야 구현할 수 있음. 
세부적으로 2.1, 2.2 등의 값을 만든다고 가정했을 때 범위 값을 쓰지 못하기에 일일이 case2.1 : / case2.2를 써줘야 한다. 

switch (menu){

   case 2 : 
   case 3 :
      console.log("물건 사기")
      break;
   case 2 : 
      console.log("잔고 확인")
      break;
   case 3 : 
      console.log("히스토리 확인")
      break;
   defult : 
      console.log("홈으로 돌아가기")
}
 
if(menu<=3){
console.log("범위 안의 숫자입니다.")
} else{
console.log("범위 밖의 숫자입니다.")
}





자주 쓰인다

let menu = 2
let answer = menu<=3 ? true 일때 : false 일때

• 조건이 많지 않고
반환(return)하고 싶은 값 딱 하나만
  코드에 있을 때 사용 (둘 중 하나 선택 시)
let menu = 2
let answer = menu<=3 ? "범위 안의 숫자입니다.""범위 밖의 숫자입니다."

console.log(answer)

➞ Console창 프린트 : 범위 안의 숫자입니다.
반응형

1. 객체의 생김새

let patient = {
   name : "Cathy",
   age : 17,
   disease : "cold"
}

결과 프린트

console.log(patient) // { name : "Cathy", age : 17, disease : "cold" } 
console.log(patient.age) // 17 같은 결과 값 도출이나, programing할 때 해당 상황에 따라 필요한 코드로 선택하여 쓴다.
console.log(patient["age"] // 17

어떤 값을 접근하는 문법이 두 가지 라고 보면 된다. ⓐⓑ


2. 객체의 특정 정보변경할 경우

patient.name = "Catherin"
console.log(patient) // { name : "Catherin", age : 17, disease : "cold" }
(same as)
patient ["name"] = "Catherin"
console.log(patient) // { name : "Catherin", age : 17, disease : "cold" }

3. 객체(object)를 배열(array)에 넣어 사용하기  ---  object 값 접근하는 방법

*100명의 환자를 배열화 한다는 가정, 첫번째 환자 차트를 알고 싶을 때

let patientList = [ {name: "Olivia",age: 7}, {name: "Emma",age: 15}, {name: "Charlotte",age: 27} ]

console.log(patientList)
console.log("첫번째 환자는 :", patientList [0])

결과 프린트 ➞  첫번째 환자는 : { name: "Olivia", age: 7}

*첫번째 환자의 나이만 알고 싶을 때

console.log("천번째 환자의 나이는?", patientList[0]. age)

결과 프린트 ➞  첫번째 환자의 나이는? : 7
(same as)
console.log("천번째 환자의 나이는?", patientList[0]["age"])

결과 프린트 ➞  첫번째 환자의 나이는? : 7

객체지향형 프로그래밍 OOP (object-oriented programming)

class 라는걸 많이 이용해서 하는 프로그래밍을 하는 방식을 말한다. 오늘 배운 것은 객체(object)라는 자료형이다. 

반응형

과일을 리스트를 보려면, 과일 리스트(변수)를 저장 해야 한다.

배열을 엑셀시트처럼 변수 이름 하나를 가지고 여러개 데이터를 저장할 수 있다. 

let fruit = ["banana","apple","grape","mango"]

<알아야할 개념 - 배열>

배열은 관련있는 데이터들을 하나로 묶어서 하나의 변수 아래에 저장하는 것이다. 

 

console.log(fruit.indexOf("apple")) // apple의 index가 몇 번인지 알려준다. 


console.log(fruit.slice(1)) // ["banana","apple","grape","mango"] -> ["apple","grape","mango"] 인덱스 1번부터만 살리고 앞에 인덱스는 잘라버린다. 

console.log(fruit.slice(1,3)) // ["banana","apple","grape","mango"] -> ["apple","grape"] 인덱스 1번부터 3번 이전까지 추출

 

fruit.splice(2,1)

console.log(fruit) // 인덱스 2부터 시작해서 몇개를 제거할지


slice와 splice의 차이?

일부 아이템만 가져다 새로 배열 만들고 싶을 때 사용 기존 (원본)배열을 바꿔야 할 때 사용
fruit.slice(0,2)
console.log(fruit)
fruit.splice(0,2)
console.log(fruit)
slice는 기존의 배열을 건들이지 않고 복붙해서 새로운 배열을 만든다. splice는 기존 오리지널 배열이 잘린다.
Console창 결과 -> ["banana","apple","grape","mango"]
원래는 인덱스 값 반영해서 ["banana","apple"]로 나와야 한다.

-> 이 코드를 살리려면
변수를 추가해야 한다.

let extrafruit = fruit.slice(0,2)
console.log(extrafruit)

그리고, 원래 코드를 보고 싶다면..

console.log("orignal fruit",fruit)
-> orignal fruit ["banana","apple","grape","mango"]

위와 같이 보인다.🫢
 
반응형

+ Recent posts