JavaScript
- 기본적으로 HTML 위에서 돌아가는 코드
body 태그 안에 태그를 넣고 안에 작성
document를 호출하고, .으로 함수를 호출한다.
querySelector(’’)로 원하는 element 선택 가능, ‘‘안의 내용은 css 선택자 문법과 같음
querySelectorAll(’’)로 원하는 속성의 element들을 nodeList(배열과 유사)형태로 선택 가능
ex )
document.querySelector('body')
ex )
document.querySelector('#new')
ex )
document.write("hello world")
태그 안에 javaScript를 사용하는 속성값으로 사용
ex )
<input type="button" value="hello" onclick="alert('hello')">
특정 태그 안에서 자기자신을 호출할 때에는 querySelector를 호출하지 않고 this를 사용하면 된다.
ex )
<input type="button" id="hello" onclick="document.querySelector('#hello').style.color='black';">
ex )
<input type="button" id="hello" onclick="this.style.color='black';">
var 로 변수를 선언 가능하다. (var 이 없어도 된다)
별도의 파일로 분리한 후 파일의 링크를 지정한다.
ex )
<script src="script.js"> </script>
연산자
= : 대입 연산자
== : 비교 연산자, 좌항과 우항이 같으면 true
=== : 비교 연산자, 좌항과 우항의 type 까지 비교
ex )
null === undefined : false
ex )
null == undefined : true
ex )
123 == "123" : true
ex )
123 === "123" : false
+ : 덧셈 연산자, 문자열 병합에도 사용 가능
배열
- var NAME = [] 형태로 선언
- .length : 배열의 길이를 반환하는 메소드
함수 선언
- function FUNCTION_NAME () {} 형태로 함수 선언, ()안에는 인자가, {}안에는 함수 body가 들어간다.
- 인자로 self를 넣으면 python의 함수가 호출된 객체를 지칭하도록 사용할 수 있다.
- return 예약어를 통해 함수 종료시 값을 반환 가능(return 필수 아님)
- 동일한 이름의 함수가 다시 정의되면 이전의 함수는 삭제된다.
객체
var NAME = {}; 형태로 선언 가능
ex )
var coworker = {"designer" : "A", "programmer" : "B", "data scientist" : "C"};
객체의 값은 . 이나 [] 로 참조 가능, property라고 칭한다.
ex )
coworker.designer
ex )
coworker["data scientist"]
객체의 필드들은 ,로 구분해야 한다. 함수도 {} 다음에 ,를 찍어준다.
ex )
var coworker = { "designer":"A", showAll:function( ){ }, "programmer":"B" }
이미 선언된 객체에 새로운 값 추가 혹은 기존 값 변경 가능
ex )
coworker.new = "D"
ex )
coworker.programmer = "E"
for ( .. in ~~ ) {} : 객체 내부 순회, ..는 내부 원소를 지칭할 변수를 선언하고, ~~에는 객체를 넣어준다.
ex )
for (var key : coworker) {}
객체 내부에 함수도 선언 가능, method라고 칭한다.
ex )
var body = { setColor:function( ){ } }
ex )
coworker.setColor = function() {}
객체 내부의 메소드에서 객체를 칭할 때에는 this를 사용
ex )
funciton () { for (var key in this) {} }
데이터 타입
- primitive
- Boolean
- Null
- Undefined
- Number
- 연산으로 계산 가능
- String
- ’ ’ 나 " " 로 묶어서 사용
- + 으로 concatenate 가능
- Symbol
- Object
문자열 (String)
.startWith(STRING)
: 문자열이 STRING 으로 시작하면(prefix) true를 반환, 아니면 false를 반환.slice(VALUE)
: 시작점으로 부터 VALUE만큼의 글자를 제거 (문자열 자르기).substring(VALUE)
: 시작점으로 부터 VALUE만큼의 글자를 제거 ().replace("/^AB", '')
: 정규식을 이용, AB로 시작하는 prefix 제거 (문자열 치환)
Json
.hasOwnProperty(KEY)
: json 데이터에 KEY 라는 key가 존재한다면 true를 반환, 아니면 false를 반환
이벤트
- onclick : 클릭 이벤트가 일어났을 때
- onchange : 텍스트 에디터의 내용이 변경되었을 경우
- onkeydown : 키를 눌렀을 때
메소드
- alert(’ ‘) : 브라우저의 경고창에 ’’ 안의 내용을 띄움
- .length : 문자열의 길이를 반환, 배열의 길이를 반환
- .indexOf(’ ‘) : 문자열 중 ‘‘에 속하는 문자 혹은 문자열이 시작되는 index를 반환, 0부터 카운팅
- .trim() : 문자열의 공백을 제거
- .value : element의 값을 뜻하는 변수 호출
함수
var repeat = setInterval(function, time)
: time 만큼 delay를 주고 function을 반복한다. 독립 thread로 동작한다.clearInterval(repeat)
: 인자로 받은 interval 반복함수를 정지한다.var result = setTimeout(function, time)
: time만큼 delay후 function을 실행한다. 실행후 result에는 ’true’가 저장된다.
Jquery
javascript상에서 document를 대체하여 사용성을 높인 라이브러리
$()
로 시작한다.ex )
$('a').css('color','red')
: 모든 ‘a’ 태그의 css 속성 중 color을 red로 변경
참조
- document < DOM (Document Object Model) < window
- ajax : 웹페이지를 변경하지 않고 내용 변경
- cookie : 사용자에게 개별화된 서비스 제공
- offline web application : 인터넷이 끊겨도 동작하는 어플리케이션
- webRTC : 화상통신 웹
- speech(로 시작하는 API) : 사용자 음성 처리
- webGL : 3차원 그래픽
- webVR : 가상현실