2016년 12월 1일 목요일

1. JavaScript [Basic JavaScript]

JavaScript

자바 스크립트는 client-side script language로 코드가 browser에서 run된다.
client-side script 언어의 장점은 다음과 같다.

  • usability: 서버로 다시 보낼 필요없이 빠르게 page를 modify 가능하다.
  • efficiency: 서버를 기다리지 않아도 되면서 빠르게 페이지를 변경가능하다
  • event-driven: 브라우저 사용자 action에 따라 반응한다.
JavaScript는 lightweight 언어이면서 web page를 interactive하게 만들고 web standard로 정해진 언어이다. web standard이지만 모든 browser에서 똑같이 작동하지는 않는다.

Java VS JavaScript 
JavaScript는 interpret되고 덜 제한된 syntax 와 rule 을 가지며 function가 key construct이다.

PHP VS JavaScript
같은점
  • interpret 된다.
  • 덜 제한된 syntax 와 rule
  • case-sensitive
  • text processing하는데 regular expression 사용가능
다른점
  • JS가 더 orient-object하다.
  • JS는 interactive하다.
  • JS는 client-side이고 PHP는 server-side이다.
Load JS

Linking to a JS file


위의 코드를 HTML head태그안에 넣어주거나 body태크 맨 밑에 넣어주어야 한다.

Embedded HTML
위와 같이  js파일을 linking하지 않고 html body태크안의 script태크 안에 javascript언어 코딩 가능하다









alert







Variable and Type



var 로 변수를 정의하는게 가장 일반적이지만 다른 방법으로는 let, const가 있다,
let - if,while구문 과같은 block 안에서만 유효하다. (var 와 같이 변수 선언과 동시에 초기화)

const -읽기 용도로 사용하기위해 선언

그리고 타입 정의가 구체화 되지 않는다.
real number와 integer는 구분되지 않고(but not double vs int) 2*"3" 와 같이 int*string일 경우 자동으로 결과값이 int형(6)으로 바뀐다.
String Type



다음과 같이 쓰며 string 변수는 '' or "" 으로 감싸서 값을 설정하고  int+string일경우 string으로 바뀐다.

String Method는 다음과 같다.












다음은 string 타입에 대한 예제이다.




Boolean Type




  • fasle: 0, 0.0 ,NaN , undefined , null , ""
  • true: anything else


undefined은 정의되지도 않고 존재하지도 않는다.

null은 존재하지만 값이 없는것이다. 


Similar java

for,while,if(else) 모두 자바와 문법이 같고 비교연산자 또한 같다.
하지만 javascript에서 ===라는 비교연산자가 있는데 이것은 type과 값을 모두 비교한다.
그렇다면 ==연산자는 타입은 달라도 값만 같다면 true반환한다.

Array







다음과 같이 배열을 정의할수 있다.
Array Method












다음은 메소드 실제 사용 예제이다.







Event Driven Programming


  • 이벤트 발생에 따라 프로그램의 실행 흐름이 달라진다.
  • 자바 스크립트 프로그램은 유저의 반응을 계속 기다린다.
이벤트를 발생시킬려면 이벤트를 발생시켜주는 Event-Handler가 있을 것이다.

Event Handler































위와같이 click me 버튼을 누르게 되면 function button함수를 실행시켜 안의 alert("hello")코드를 run한다.