Javascript

  • HTML + CSS 에 접근(로드가 끝나야만 접근할 수 있다.)해서 interactive한 처리를 할 수 있도록 설계된 문서.
  • logic이 있고, 컴파일이 필요 없다.
  • jQuery(.js) , React.js, Vue.js 가 js를 쉽게 해주는 언어. 클라이언트딴에서 돌아간다. Node.js는 서버딴에서 돌아가는 javascript
  • 브라우저 내에 script를 해석할 수 있는 프로그램이 탑재되어있다.

javascript 기본문법

  • 대소문자를 구분한다.
  • 세미콜론과 줄바꿈(엔터)를 하면 문장의 마지막이라고 생각한다.
  • html 문서내의 <head></head> 사이에 들어간다.
  • 주석 : // , /**/

자료형

1. 문자열형

””, ‘’

var shape = "ROUND";
document.write(typeof shape +"<br>"); //string
var dog = "우리 강아지 이름은 '핀'이란다"; //이렇게 "" 안에 ''넣을 수 있다. 반대도 가능

2. 숫자형

실수, 정수 다 포함되어있다. java처럼 여러 타입으로 나누어져있지 않다. 그냥 다 number다.

var num = 45;
document.write(typeof num+"<br>"); //number
var num = 45.3;
document.write(typeof num+"<br>");//number

3. 불리언

true(1) , false(0) , 0을 제외한 모든 애들은 true이다.

var bool = true;
document.write(typeof bool+"<br>");//boolean
var bool2 = 45<20;
document.write(typeof bool2+"<br>");//boolean

4. 함수

함수도 데이터이다. 자바에서는 함수는 데이터가 아니었다.

function myfunc(){
  var a= 20;
  document.write("함수 내의 변수 : " + a +"<br>");
}
document.write(typeof myfunc()+"<br>")//function

5. 객체

Date(); 같은 객체들.

var today = new Date();
document.write(typeof today+"<br>");//object

6. undefined

정의되지 않은 것도 자료형이다.

var today;
document.write(typeof today+"<br>");//undefined

연산자

산술 연산자

: + - * / % ++ –

대입 연산자

: = += -= *= /= %=

비교 연산자

: ==(동등) ===(일치) != > < >= <=

var num1 =3;
var num2 = "3";
document.write(num1 == num2) + "<br>" // unboxing 한 값이 같으면 같은 데이터
document.write(num1 === num2) + "<br>" //타입도 같아야 같은 데이터

논리연산자

&&(논리곱)	||(논리합)	!(논리 부정)
var num = 5;
document.write((1<=num<=10)); //true
/*true나온다. 근데 잘못된 식이다. true가 나오는 이유는, 좌측부터 계산을 하는데, 1<=num 이 true라서 true=1 로 되고, 1<=10으로 계산되기 때문에 true가 나오는 것이다.*/
document.write((1<=num<=3)); //true

삼항연산자

: (조건식) ? 참이면 실행할 문장 : 거짓이면 실행할 문장.

var a =10;
var b =20;

a>b ? alert("a가 커!") : alert("b가커")

기타

재선언

var a =25;
var age ='이십오';//var은 재선언해도 괜찮다.

let name = "홍길동"
let name = "임꺽정" //let은 재선언하면 오류가 뜬다.

변수의 선언 위치에 따른 종류

  1. 전역변수
  2. 지역변수 : function 내부에 사용된 변수.
var a =10;
function myfunc(){
  var a= 20;
  document.write("함수 내의 변수 : " + a +"<br>");
}
myfunc();
document.write("함수 밖의 변수 : " + a);

결과 :

함수 내의 변수 : 20 함수 밖의 변수 : 10

입출력

입력

prompt 창이나 html input과 연동해서 사용한다.

var result = prompt("값을 입력하세요");

출력

alert, confirm, console.log()

alert("경고!")
confirm("경고!")
console.log(result) //f12 개발자 모드에 찍힌다.

confirm 은 return 타입이 있어서 확인 버튼 눌리면 true 반환, 취소는 false반환.

var result =confirm("경고!")
document.write(result);

짧은 조건문

true && alert("실행A") //실행됨
true || alert("실행B")
false && alert("실행C")
false || alert("실행D") //실행됨

var input = Number(prompt('숫자를 입력해주세여','숫자'))
input%2==0 && alert("짝수입니다.") //짝수일 때 true, 실행됨
input%2==0 || alert("홀수입니다.") //홀수일 때 false, 실행됨

반복문

  • java랑 거의 똑같다. int가 아니라 var을 쓰는게 차이점.
for(var i=0;i<10;i++){
  document.write("javascript"+"<br>")
}

배열

  • java랑 거의 똑같다. 근데 {}가 아닌 []를 사용한다.

    var myArray = new Array();
    var tweets = ["Hello everybody","123"]
    
  • push 를 사용해 array에 값을 추가할 수 있다.

    tweets.push("2 weeks challenge!"); //["Hello everybody","123","2 weeks"," challenge!"]
    
  • indexOf를 사용해 특정값의 index를 알 수 있다.

    [1,2,3,4].indexOf(3) //2
    
  • concat

    • origin은 안 바뀐다.
    var origin = [1,2,3,4];
    var result = origin.concat(2,3);
    
  • splice(index, 개수)를 사용해 어레이에서 값을 제거할 수 있다.

    tweets.splic(1,2); //["Hello everybody"," challenge!"]
    
  • splice(index,개수, 더할값…)을 사용해 어레이에서 값을 제거하고 제거된 값 부터 정보를 추가할 수 있다.

    tweets.splic(0,1,"back","off"); //["back","off"," challenge!"]
    
  • for문과 함께 사용하기

    var aryy = [19,"string",30.5] //이렇게 타입 섞어서 넣을 수 있다.
    var ary = [10,20,30,40,50];
    
    for(var i=0;i<5;i++){
      document.write(ary[i]+"<br>")
    }
    for(var value in ary){
      document.write(ary[value]+"<br>")
    }//확장된 for문,
    
  • 확장된 for문에 대해서,

    java에서는

    int[] ary = {10,20,30,40,50};
    for(int a : ary)
    {System.out.println(a)} //결과로 10 20 30 40 50 이 출력된다.
    

    하면 값이 나온다.

    근데 javascript의 확장된 for문은 방 번호를 뽑는다, 그니까 인덱스를 뽑는다. 그래서 ary[value]이렇게 해줘야한다.

    var[] ary = [10,20,30,40,50];
    
    for(var a in ary)
    {document.write(a)} //결과로 0,1,2,3,4 출력된다.
    
    for(var a in ary)
    {document.write(ary[a]+"<br>")} //결과로 10,20,30,40,50 출력된다.
    
  • foreach 문

    ["apple","tomato"].forEach(function(value) {
        console.log(value)
    });
    
  • map

    var newArr = ["apple","tomato"].map(function(value, index) {
        return index + "번째 과일은 " + value + "입니다";
    });
    console.log(newArr)// 여러분들이 실행해보세요
    

© 2018. All rights reserved.

Powered by Hydejack v8.5.2