Front-End

코린이의 시작 (Javascript) 본문

카테고리 없음

코린이의 시작 (Javascript)

jeongsso 2022. 8. 7. 16:02

코딩을 배우기 시작한 지 일주일이 되었다.

팀플로 바로 멘땅에 헤딩을 시작하면서 홈페이지의 회원가입, 로그인, 메인화면, 리뷰 화면 등 팀원들과 구현해냈다.

구현해 낸 것은 아직 정확히 이해하지 못해서 추후 정리할 예정이다.

 

 

<Javascript >

  ▶  특징

  • HTML+CSS와 함께 사용해 client side 웹 프로그램을 작성할 수 있다.
  • 웹 브라우저에서 바로 실행이 가능하다.
alert 명령어  : 뒤에 따라오는 괄호 안에 들어있는 메시지를 브라우저 경고창에 띄워주는 명령어를 의미

 

 

list 1. 변수

 

변수 선언과 초기화 
  • 프로그램 실행 도중 임의의 값을 저장해 두고 읽을 수 있는 공간
  • 선언 : 컴퓨터에게 변수를 사용할 것이라고 선언(알려주는) 역할
var a;  //변수 a를 선언한다
  • 초기화 : 선언한 변수에 처음으로 값을 저장하는 과정
  • 변수에 값을 저장하는 법 : 대입연산자 (=)를 활용
var a; //변수를 a로 선언함.
a=10; // 변수를 초기화 시켜 변수의 값을 저장함.​
  • 콤마(,)를 활용해 여러 변수를 동시에 선언, 초기화 가능
var a=1o, b=20;

 

  • prompt() 명령어 : 변수에 값을 저장하는 구문과 사용하여 입력한 값을 변수에 저장하여 알림창에 띄우고 입력 부분이 생기게 됨. (HTML의 input과 비슷하게 생김)

 

 

var name=prompt("이름을 입력해 주세요");

 

 

 

 

 

변수의 활용
  • 변수의 이름을 사용하면, 변수의 값을 읽어서 사용 가능
var var1 = "1", var2 = "2", var3 = "3"; // 변수값을 선언해둠.

console.log(var1); //변수 var1을 출력해라
alert(var2); // 변수 var2를 경고창에 띄워라 
prompt(var3);// 변수var3를 사용자가 입력한 값을 변수에 저장함.
  • console.log 명령어 : 괄호 안에 여러개의 메시지를 콤마(,)로 구분하여 활용함.
var name=prompt("이름을 입력해 주세요");

console.log(name, "님 안녕하세요");// 그러면 alret창에 이름을입력해주세요 후 
                                      // 입력한 내용과 console.log에 적은 "님 안녕하세요"가 
                                      // 합쳐져서 console에 표시됨. 
                                      //ex) name값으로 alret창에 적은 이름
                                      //     코린이님 안녕하세요  의 내용이 출력된다.

 

 

list 2. 자료형

 

기본자료형 : 변수값에 저장할 수 있는 값의 종류를 '자료형'이라고 한다.
  • number Type: 숫자
var a=100, b=3.14;
  • string Type: 문자열
var c="안녕하세요", d="a";
  • boolean(불리언) Type: 맞다 true /틀리다 false 를 표현
var e = true, f = false;

 

  • typeof() 명령어 : typeof 뒤에 따라오는 괄호 안에 들어있는 변수의 type을 알려준다.
var a=100;
console.log(a,typeof(a));   //100 "number"라고 출력

var c="안녕하세요";
console.log(c,typeof(c));   //안녕하세요 "string"라고 출력

var e=true;
console.log(e,typeof(e));   //true "boolean"라고 출력

 

Number
  • 숫자를 나타내는 자료형
  • 64bit로 실수와 정수 모두 표현 가능
  • 정상적이지 않는 숫자나 표현할 수 없는 범위의 수를 표시하는 NaN, Infinity
  • parselnt, pareFloat 명령어

문자열 "1"과 1은 다름  명령어 뒤에 따라오는 괄호 안에 있는 문자열 앞에부터 Numver를 인식함.

var height=prompt("키를 입력해 주세요"); // 키를 입력해주세요 후 입력창이 뜸.
console.log( height, typeof(height));    // 그아래 입력한 값이 console에 표시되는데 문자열
                                         //즉, 168.5(입력한값) string(type) 표시가됨

var height_int=parseInt(height);  		  //height 입력했던 값을 parseInt로 변수선언하고
console.log(hight_int,typeof(height_int));//출력하면 168(입력한값의 정수값만) number(type) 표시

var height_float=parseFloat(height);  		  //height 입력했던 값을 paraeFloat로 변수선언하고
console.log(height_float,typeof(height_float));//출력하면 168.5(입력한값 실수까지) number(type)표시

*NaN (Not a Number) 숫자가 아닌경우 표시됨      *Infinity 수학적 오류가 있구나 그 결과 값을 변수로 지정했을 경우

 

 

String
  • 따옴표('), 큰따옴표(")로 감싸서 문자열을 표현
  • 문자열 안에 따옴표, 큰따옴표 등의 문자를 활용하려면 escape character(\ 역슬래시)를 활용
var a='문자열은 따옴표로 둘러싸면 됩니다.';
var b="큰따옴표로도 문자열을 표현할 수 있습니다.";

var c="큰따옴표 문자열에는 따옴표 '를 사용할 수 있습니다.";
var d='따옴표 문자열에는 큰따옴표 "를 사용할 수 있습니다.';

var e="따옴표를 쓰고 싶다면 \'이렇게\' 사용하면 됩니다. 마찬가지로 \"큰따옴표\"도 쓸 수 있습니다.";
var f='따옴표를 쓰고 싶다면 \'이렇게\' 사용하면 됩니다. 마찬가지로 \"큰따옴표\"도 쓸 수 있습니다.';

var g="\\ 문자를 쓰고 싶다면 역슬래시를 두번 씁니다.";

var h="문자열에서 줄바꿈을 하고 싶다면, \n 역슬래시n을 사용합니다.";

var i=a+b;

var j="abcde";​

*SyntaxError 잘못된 문법으로 나타나는 오류 

 

Object : number, string, boolean의 단순 자료형보다 더 복잡한 자료 표현 시 사용
  • 객체를 만드는 법 : 중괄호({})를 사용해 정의 가능함.
  • 객체는 속성의 집합으로 이루어짐
var empty={};
typeof(empty);  // "object' (객체)라고 출력됨.

var man={name:"코린이", age:20, height:168}; 
				// name, age, height 는 속성의 이름
			    // 코린이, 20, 168 은 속성의 값
                //객체 정의 시 속성이름:값의 형태로 속성 정의 가능
                                      
//객체 속성에 접근해서 속성 값을 변경하는법
                                     
man.name     //객체이름 뒤에 점(.)을 사용하여 속성값에 접근해출력하면 "코린이"
man["name"]  //객체 이름뒤에 대괄호([""])안에 문자열로 접근해도 "코린이"

man.name = "코딩고수";   //변수 초기화 후 입력 값 변경되서 man.name  은 "코딩고수"로 변경됨
man["name"] ="코딩고수"; // 변수변경하여 "코딩고수"로 값이 변경됨.

man // 변수이름을 호출하면 
object{name : "코딩고수", age : 20, height : 168}  // 속성과 값이 변경된것을 확인할 수 있음

 

undefined : 값이 없다.  시스템에서 어떤 변수나 속성이 정의되지 않은 경우를 표현하기 위해 사용
null : 값이 없다. 개발자가 의도적으로 아무것도 없는 비어있는 상태를 나타낼 때 사용
var a;  //변수 a 선언 후 따로 초기화 후 값을 저장하지않으면
typeof(a); // 출력하면 "undefined" 로 나타남.

var null_var;  //변수 null_var를 선언
null_var = null; // 변수를 null로 초기화 후 저장함.

null_var;  // 출력하면 null이라는 값이 나타남
typeof(null_var); // "object"로 표시됨. -> null이라는 빈객체가 저장되어있다는 의미

 

 

 

list 3. 연산자와 함수
Arithematic (산술: 산수 계산하는)  Operator (연산자 : 계산하라는 기호)
  • 이항연산자 : 두개의 피연산자 (A, B)를 가지는 연산자. 피연산자는 숫자 또는 변수가 될 수 있음.
var a=5, b=3;   // 변수를 초기화하여 값을 저장하고 선언함.

a+b  // 더하기 연산자 +  값이 8이 출력됨.
a-b  // 빼기 연산자 - 값이 2이 출력됨.
a*b  // 곱하기 연산자 * 값이 15가 출력됨.
a/b  // 나누기 연산자 / 값이 1.66666666이 출력됨.
a%b  // 나머지 연산자 % 두개 값 (5를 3으로)을 나누면 몫(1)과 나머지(2)가 나올 때 나머지를 출력
  • 단항연산자 : -a; 는 이항연산자의 빼기(-)가 아닌 음수를 뜻하는 경우로 a에 -1을 곱한 효과가 나타남.
var a=1;  // 변수 a를 초기화하여 1로 저장하여 선언함.

console.log(a);   // 1
console.log(a+1); // 2
console.log(a);   // 1

console.log(a);   // 1
console.log(++a); // 2 (a=a+1)과 같은의미임    --일경우도 똑같음.
console.log(a);   // 2 (a의 값이 변경되어 저장된 상태임을 표시)

console.log(a);   // 1
console.log(a++); // 1 console.log(a)가 먼저출려되고 나서 a=a+1로 변수초기화를 시켜줌
console.log(a);   // 2 (a의 값이 변경되어 저장된 상태임을 표시)
  • Math 명령어
Math.pow(2,3); // 2의 3승을 구해 줌 ; 8이 출력됨
Math.sqrt(16); // 16의 제곱근을 구해 줌 ; 4가 출력됨
Math.random(); // 0~1 사이의 임의의 숫자(난수)를 발생시켜 줌  ; 0.1554233543이 출력됨

 

함수 : "함수를 '호출' 한다 " = 함수의 기능을 수행하고 결과값을 반환하게 함.
function 함수이름(파라미터1, 파라미터2){
    /*
        실행될 코드
    */ 
    return 반환값;         // return : 함수의 출력으로 호출한 표현식은 반환값으로 대치 
}

// 파라미터 또는 인자 : 함수 정의 부분에 나열되있는 변수
//                     여러개면 콤마(,)로 구분
//                     파라미터가 필요없는 경우는 없어도 됨.
//                     함수 안의 코드에서 변수처럼 사용할 수 있음.


function return_test(){
	return;          //return 구문을 만나면 함수는 즉시 종료
	console.log("실행되지 않는 코드")
}
  • 함수의 호출 방법 : 함수이름(인자1, ...) 형태로 호출함.
function sum(a,b){          
	var result = a + b;
    return result;
}

sum(1,2);  // 함수 sum을 호출하면 3이라는 결과가 반환됨.

 

관계 연산자 (Relational operator)

두 표현식 (A,B)의 관계를 비교하는 이항연산자, 관계에 따라 boolean타입으로 표현됨.

관계연산자 동작 True인 예시 False인 예시
< A보다 B가 더 큰 경우 참 3<5 3<3
> A보다 B가 더 작은 경우 참 5>3 3>3
<= A보다 B가 크거나 같으면 참 3<=3 4<=3
>= A보다 B가 작거나 같으면 참 3>=3 3>=4
== A와 B가 같으면 참 3==3 4==3
!= A와 B가 같지 않은 경우 참 3!=4 3!=3
논리 연산자 (Logical operator)
  • AND(&&)연산자 : 두 피연산자가 모두 true인 경우에만 true를 나타내는 이항연산자
  True False
True True False
False False False
  • OR(||) 연산자 : 두 피연산자가 하나라도 true인 경우 true를 나타내는 이항연산자
  True False
True True True
False True False
  • NOT(!) 연산자 : 피연산자가 true인 경우를 false로, false인 경우를 true로 나타내는 단항연산자
연산자 우선순위 : 수학에서 곱하기를 더하기보다 먼저하는 것 처럼, Javascript에서도 존재
  • 우선순위 순으로 정리한 연산자 
  1. ++, --
  2. !
  3. *, /, %
  4. +, -
  5. <, <=, >, >=
  6. ==, !=
  7. &&
  8. ||
  • 괄호 : 우선순위를 명시하기 위해 괄호를 사용 (괄호안의 계산식이 먼저 계산됨)

 

String 이어 붙이기
  • 문자열 길이 알아내기 : str.length 
  • 문자열 붙이기 : str.concat(str2)   or    str1+str2
String 다루기
  • 특정 위치 문자열 알아내기
var str = "asdfgh";
str.charAt(0);  // 0부터 시작하는 순서로 str라는 문자열의 0번째 글자출력함 ;  "a"
str.charAt(str.length-1); // 마지막 문자를 출력해줌 ; "h"
str.charAt(7); // 문자열을 벗어난 순서로 출력하게 되면 빈문자열을 출력함 ; ""


str[0];  //  0번째 str이 출력됨; "a"
str[str.length-1]; //  마지막 문자를 출력함; "h"
str[-1]  // 문자열을 벗어났으나 빈문자열이 아닌 undefined가 출력됨.

 

  • 부분 문자열 구하기 : 문자열의 연속된 일부분을 구하는 함수
str. substring(pos1, pos2) // pos1 에서 pos2전 까지의 부분 문자열 반환
                              pos2 생략시 pos1에서부터 마지막 까지의 문자열 반환
ex) *var str = "abcdefg"
     str.substring(2,4);  "cd"
   
substr(pos, length)        // pos에서 length길이 만큼의 부분 문자열 반환
                              length 생략시, pos에서 마지막까지의 문자열 반환
                              pos 가 음수인 경우, str.length - pos 로 동작
ex) *var str = "abcdefg"                            
    substr(2,4); "cdef"

 

배열 만들기 

배열 : 값을 저장할 수 있는 엘리먼트(변수)의 연속된 공간. 주소(인덱스, index)를 이용해 각 엘리먼트에 접근 가능.

배열의 정의

  • 빈 배열 : var arr=[];
  • 초기화된 배열 : var arr=[1,2,3,4,5];
  • 엘리먼트에는 어떤 자료형이든 저장될 수 있음
    • var mixed_arr = [ 1, true, 3.14, "string", {name:"object"}, [1,2,3] ];

배열의 길이

  • .length 속성 이용

배열의 엘리먼트에 접근하기

  • 대괄호 안에 인덱스를 사용 : arr[index]
    • arr[0] = 1
    • console.log(arr[arr.length-1]);

 

배열 사용하기
  • 배열에 변수(엘리먼트)추가/삭제하기
.push(element) : 배열의 뒤에 엘리먼트 추가
.pop() :         배열의 뒤에서 엘리먼트 삭제하고 리턴
.shift() :       배열의 앞에서 엘리먼트 삭제하고 리턴
.unshift(element) : 배열의 앞에 엘리먼트 추가
  • 배열 붙이기, 검색하기
arr1.concat(arr2) : arr1과 arr2 붙임
arr.indexOf(element) : arr에서 element가 있는 첫 위치를 검색 (str에서도 동일)
arr.lastIndexOf(element) : arr에서 element가 있는 마지막 위치를 검색 (str에서도 동일)
  • 문자열 split 함수 : 문자열을 구분자로 나눠서 각각을 담은 배열을 반환하는 함수
var str="1,2,3,4,5";
arr = str.split(",");

arr = ["1", "2", "3", "4", "5"];

 

주석
한줄 주석 // 여기부터 주석

여러줄 주석
/* 여기부터

         여기까지 주석  */

 

if, else, if, else : 조건에 따라 프로그램의 흐름을 분기해서 특정 코드가 실행되도록 함
if(/*조건식*/){
    /*참인경우 실행될 코드*/
}
else if( /*조건식*/ ){
    /*if 문의 조건이 거짓이고, 위의 조건식이 참인경우 실행될 코드*/
}
/* 여러개의 else if... */
else if( /*조건식*/ ){
    /*위의 if, else if문의 모든 조건이 거짓이고, 위의 조건식이 참인경우 실행될 코드*/
}
else{
    /*모든 if, else if 문이 모두 실행되지 않았을 때 실행될 코드*/
}

 

switch문 
switch( /*비교할 값*/ ){
    case /*값1*/:
        /*비교할 값이 값1인 경우 실행될 코드*/
        break;
    case /*값2*/:
        /*비교할 값이 값2인 경우 실행될 코드*/
        break;  //break사용하지않으면 switch문에서 빠져나오지 않고 다음 case해당 코드까지 시행함

    /*
    ... 여러개의 case
    */

    default:
        /*비교할 값이 위의 모든 값과 다른 경우 실행될 코드*/
        break;           
}

 

while 문 (반복문) : 조건에 따라 프로그램의 일정 코드를 반복적으로 수행할 수 있도록 하는 구문
var count = 0;

while(count<3) {
	var choice = pareseInt(prompt("메뉴를 선택해 주세요"));
    console.log(choice +"번 메뉴를 선택하셨습니다");
    
    switch(choice){
    	case 1: 
    		console.log("아이스 아메리카노는 1500원 입니다.");
            break;
        case 2:
        	console.log("카페 라떼는 1800원 입니다.");
            break;
        case 3:
        	console.log("카푸치노는 2000원 입니다.");
            break;
    }
    count++;     /*count가 1씩 증가하게끔 설정함.
                  continue : 남은 반복실행될 코드를 모두 skip
                  break : 반복문에서 즉시 탈출  */
    
}

console.log("안녕히 가세요")

 

 do, while 문
var con = false;

while(cond){
	console.log("이 구문은 실행되지 않습니다.");
}


do{
	console.log("이 구문은 한번은 실행됩니다.");
} while(cond); // 한번 실행되고 cond가 false라 이후 실행은 되지않음

do{
	var ans = parseInt(prompt("1+1=?"));
} while(ans != 2);     //반복해라 ans의 값이 2가 아니라면 
console.log("맞췄습니다");  // ans의 값이 2로 나왔다면 표시해라

 

for문 : 초기구문, 업데이트 구문, 반복조건을 한 구문에 합친 반복문

ex) 0~4까지 더하는 동일한 while과 for 문

while 문

var sum=0;
var i=0; //초기 설정코드
while(i<5 //조건식){
	sum = sum + i;
    i++; //업데이트 코드
}
for 문

var sum=0;
for(var i=0; i<5; i++;){    // i는 배열의 각 변수 index를 나타냄
	sum=sum+i;
}

 

for in문 : 객체의 각 변수를 출력해주는 반복문
for 문 

var property_list = Object.keys(obj);

for( var i=0 ; i<property_list.length ; i++ ){
    var propertyName = property_list[i];
    console.log( "\t", propertyName, ": ", obj[propertyName] );
}


for in 문

for( var propertyName in obj ){
    console.log( "\t", propertyName, ": ", obj[propertyName] );
}


**var obj = {
	name :"object",
    weight:30,
    isObject:true,
    arr:[1,2,3],
    obj:{property:1}
};

 

 

 

Comments