외로운 Nova의 작업실
자바스크립트 유용한 기능들 본문
- Unicode escape sequence
괄호를 제외한 문자들을 코드문자로 변경할 수 있습니다. 예시를보면 빠른 이해가 됩니다. 아래는 기본적인 alert()함수예제입니다.
alert(1)
위 코드를 유니코드 문자를 사용해서 아래와 같이 사용할 수 있습니다. 유니코드 0061은 a입니다.
\u0061lert(1)
아스키코드는 안되지만 유니코드는 가능합니다.
- Computed member access
딕셔너리 객체에 접근할때 문자열을 연산할 수 있습니다. 아래는 기본적인 document객체입니다.
document("cookie")
위 코드를 아래와 같이 변경할 수 있습니다.
document["coo" + "kie"]
아래와 같이 문자열의 경우 아스키코드값도 집어넣을 수 있습니다.
document['loc\x61'+'tion']
- RegExp 객체를 이용
RegExp 객체는 정규표현식을 만들때 사용하는 것인데, .source 부분을 이용해 문자열을 가져올 수 있습니다. 정규표현식은 /정규표현식/으로 표현합니다. 아래는 RegExp 정규표현식에서 문자열을 가져오는 예시입니다.
/Hello World!/.source; // "Hello World!"
- 내장함수 및 객체 이용
내장객체인 history를 이용해 문자들을 가져올 수 있는 기능이 있습니다. history.toString 문자열을 찍어보면 아래와 같습니다.
따라서 아래와 같이 문자들을 가져올 수 있습니다.
var baz = history.toString()[8] + // "H"
(history+[])[9] + // "i"
또한 내장 객체인 URL을 문자열로 만들기위해 +1이나 +2를 붙여주면 문자열로 변경되고 이부분에서 문자들을 가져올 수 있습니다. URL+1의 값은 아래와 같습니다.
(URL+0)[12] + // "("
(URL+0)[13]; // ")" ==> "Hi()"
- javascript 스키마
스키마를 http가 아닌 javascript로 두면 자바스크립트 프로토콜로 전환되어 자바스크립트를 실행할 수 있습니다. 단, 웹서버가 가동중인 곳에서만 가능합니다.
location="javascript:alert(8document.domain);"
'Programming > Javascript&Html' 카테고리의 다른 글
URL 유용한 기능들 (0) | 2023.02.15 |
---|---|
HTML 인코딩 (1) | 2023.02.15 |