본문 바로가기

해킹/웹해킹

[웹해킹] 자바스크립트 문법 정리

본 글에서 사용한 예제나 사진은 다음 사이트에서 가져왔습니다. www.tcpschool.com/javascript/

자바스크립트 기본 타입

자바스크립트의 기본 타입에는 다음과 같은 것들이 존재한다.

  • 숫자
  • 문자열
  • boolean
  • undefined
  • Symbol
  • 객체

숫자는 모두 실수로 표현한다.

undefined는 타입이 정해지지 않았음을 나타내는 타입이다.

변수의 선언 및 초기화
var hello = 'hello world!'
hello = 10

dog = "멍멍"

비교 연산자

다른 산술연산자, 비트연산자 등은 전부 다른 언어와 비슷하다. 하지만 자바스크립트에는 ==와 ===라는 연산자가 있는데, 이는 타입별 변환이 비교적 자유로운 자바스크립트에서 ==는 값만이 같으면 True, ===는 값이외에도 타입도 같은지 비교한다. !=와 !==도 비슷하게 존재한다.

이 외의 연산자는 대부분 비슷하나 delete 연산자를 하나 짚고가면 배열이나 객체의 프로퍼티를 제거할 수 있다고 한다.

배열

배열은 대괄호로 감싸서 만든다. 위의 사진 참고..

length라는 프로퍼티를 통해서 길이를 구할 수 있다.

또한 for문에서 자바의 enhanced for, 또는 파이썬의 for 처럼 사용할 수 있다.

for(var i in arr){
	alert(i)
}

함수
function add(x, y){
	return x+y;
}

function이라는 키워드를 이용해 정의한다.

function또한 변수에 저장할 수 있으며 심지어 실행도 가능하다.

함수를 정의할 때, default값을 적용할 수 있다.

위의 사진은 add를 정의할때, default 값을 적용한 사진이다. 2개의 인자를 받는 add함수지만, 인자가 0개 1개인 경우에도 default값을 이용하여 결과를 리턴한다.

위와 같이, 자바스크립트에서 함수에 전달되는 인자가 정해진 개수를 초과하여 들어가는 경우, arguments라는 배열에 들어가게 된다. 그래서 위와 같은 함수를 정의할 수 있다.

객체

C언어에서의 구조체, 객체지향언어에서의 instance와 대응되는 개념이다.

var dog={
	name:'콩이',
    age:9,
    favorit:'개껌',
    cry: function(){
    	return '멍멍!';
    }
}

객체를 만들어내는 함수를 정의하면, prototype이라고 하여, new 키워드를 통해 객체를 만들어낼 수 있다. 다른 객체지향언어에서의 class에 대응되는 개념이다.

 

prototype의 개념을 표현한 사진..

document 객체

document객체란 자바스크립트에서 해당 웹페이지를 나타내는 객체이다. 이 객체를 통해 웹페이지내의 많은 요소에 접근할 수 있다.

여러 태그등에 접근하는 방법..

위에 나온게 전부가 아닐 정도로 많은 프로퍼티를 가지고 있다.

document.cookie를 alert하면 위와 같이 나오게 된다.

'해킹 > 웹해킹' 카테고리의 다른 글

[HACKCTF] - 가위바위보  (0) 2021.03.21
[HACKCTF] Home  (0) 2021.03.21
[웹해킹] HACKCTF - Input Check  (0) 2021.03.14
[웹해킹] HACKCTF - TIME WriteUp  (0) 2021.03.14
[웹해킹] HACKCTF - Magic Number WriteUp  (0) 2021.03.14