일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Python
- scss
- webpack
- npm
- TypeScript
- nginx
- security
- docker
- machine learning
- property
- dotenv
- bash
- 앙상블
- var
- git
- BOJ
- leetcode
- VUE
- C++
- generic
- C#
- vuetify
- AI
- vue.js
- type
- Clone
- loop
- JavaScript
- condition
- 보안
- Today
- Total
목록JavaScript (22)
ice rabbit programming
사실 티스토리에 글을 올리면서, 아직 방문자 분들이 많지는 않지만 지식 공유가 목적의 한 부분이긴 했으나, 내용 정리에 목적도 있어 C#, C++ 등의 언어를 다룰 때에는 기본적으로 프로그래밍에 대해서 어느 정도 안다고 하고 글을 쓰고 있었다. 하지만 이번에 자바스크립트 강좌는 상당히 기초부터 시작해서, 입출력/자료형 등 기본적인 부분부터 다루고 있다. 필자는 자바스크립트를 미약하게나마 써본 적은 있어서 실제 강좌에서는 스킵했으나, 정리는 해 두려고 한다. 자바스크립트의 문법은 다른 언어들과의 문법과 비슷하다. 이전 글에서 설명한 'var' 키워드나 나중에 비동기, 콜백 부분으로 넘어갔을 때 아마 많은 차이를 느낄 것이다. 연산 기본적인 사칙연산(+, -, *, /, %)과 증감연산(++, --), 논리..
JavaScript에서는 데이터 타입별로 사용자를 위해 사전에 작성된 편의 기능인 프로퍼티와 메소드를 제공한다. JavaScript에서 모든 것은 객체라고 첫 글에 언급하였다. 프로퍼티는 해당 타입 객체 내의 변수, 메소드는 객체 내의 함수라고 생각할 수 있다. C++의 STL에서 제공해주는 함수들이나 C#에서 기본적으로 제공하는 프로퍼티, 메소드와 비슷하다. var str1 = "Hello, World!"; // string str1.length; // length property str1.charAt(0); // method str1.split(" "); // method var fruit = ["apple","pear","grape"]; // array fruit.length; // length p..
지난 글에서 설명한 String, Number, Function 타입에 이어서 데이터 타입에 대해 다루려 하는데, 내용이 많을 것 같지는 않다. 네 번째 타입은 Array 타입이다. 배열은 여느 언어에 있는 것과 같이 [같은 타입, 같은 크기]의 변수들을 묶어서 보관하는 타입이다. var arr = [] // ok var fruit = ["apple", "banana"]; // ok var fruit2 = ["apple", "banana", 1]; // 타입이 다르므로 error console.log(fruit); // 배열 자체 console.log(fruit[0]); // 배열의 첫 번째 index 값 위 fruit 배열과 같이 사용하는 것이 일반적이며, fruit2에서는 같은 타입이라는 규칙에 위배..
JavaScript는 원래 브라우저 등에 이용되는 스크립트 언어였으나, 요즘에는 IoT, 서버(Node.js) 등 광범위하게 쓰이고 있고, 사용 언어 순위에도 꾸준히 등장하고 있다. 요즘 개발자라면 웹은 거의 필수적으로 다루고, 관련 없는 개발을 하더라도 발은 한 번씩 담가보기 때문에 자바스크립트를 다들 조금씩은 해보게 된다. (자바와는 다르다) 필자는 학부 시절(이라 해봐야 2년 전) vue.js와 node.js를 이용한 웹 페이지를 제작할 때 좀 다루어 보았다. 다만 그 때는 여느 학생이 그렇듯이, 구현을 하는 것에 큰 목적을 두었어서 틈틈이 언어에 대해서 알아보기는 했으나 차근차근 공부하지는 못했었다. 그러다 이번 기회에 JavaScript 강의를 접하게 되어, 필자가 듣고 정리하며 이 글을 보는 ..
XSS란, 웹사이트 관리자가 아닌 이가 악성 스크립트를 삽입하여 개인정보를 유출하거나 악성코드를 실행하는 공격 기법이다. 이전 글의 SQL 인젝션과 유사한 공격 기법인데, Javascript 구문을 넣어서 탈취한다는 차이가 있다. SQL 인젝션과 유사하다는 말은, 동일하게 유효성 검사를 통해 필터링해야 한다는 것이다. 더불어 웹사이트에서 동적으로 변하는 속성에 대해 DOM(Document Object Model) 구조 변경 시 검증이 필요하다. XSS는 크게 3가지로 나뉜다. Stored XSS : 서버에 저장하여 공격 Reflective XSS : 동적으로 생성되는 응답 페이지 작성 시 공격(링크를 눌렀을 시 공격) DOM XSS : DOM 구조 변경 시 공격 이러한 공격은 정규식을 이용한 입출력값의 ..
최근에 웹에서 함수명을 입력받아 실행하고, 그 return 값 object의 함수들을 출력할 일이 있었다. Eval string을 code로 실행하여 준다. var objectName = "myObject."; var methodName = "getProperty()"; var executeCode = objectName+methodName; eval(executeCode); // myObject.getProperty()가 실행된다. 즉, input 태그로 함수명을 입력하면 해당 함수를 실행할 수 있다. getOwnPropertyNames() getOwnPropertyNames는 객체의 모든 속성(Property)의 이름을 반환한다. 즉, 배열이면 원소들을 반환하고 클래스는 멤버들을 반환한다. https..