자바스크립트 내장함수
언어 자체에서 지원하는 함수로 자주 사용할 것으로 예상되는 것들을 미리 만들어 놓은 것.
Eval()
문자열을 수치화 시켜주거나 해당 스크립트를 실행시켜 주는 기능.
Eval("50") - 20
// 또는
var value = "50"
Eval(value) - 20
문자열이나 표현식을 숫자로 바꾸어줌 (숫자 형식이어야 함)
문자 형태의 값을 연산하기 위해서 반드시 사용
Eval() 함수를 활용해서 해당 연산자와 두 개의 값을 조합한 문자열을 수치화하여 연산을 수행하는 예제
function evalSample () {
var first, second, third, total;
first = prompt ("첫번째 숫자 입력", "20");
second = prompt ("연산자 입력", "*");
third = prompt ("두번째 숫자 입력", "50");
total = eval (parseInt(first) + second + parseInt(third));
alert ("first과 third의 값을 second의 연산자로 처리한 수 = " + total);
}
Array()
배열을 선언하는 함수. 배열을 선언하면서 크기를 지정할 수 있다.
배열 이름 선언
myArray = new Array()
배열 이름과 배열 크기를 선언
myArray = new Array(10)
length |
배열 요소의 개수 |
join() |
배열의 모든 요소들을 하나의 문자열로 만들어 리턴 |
reverse() |
배열 요소들의 순서를 역순으로 재배열 |
sort() |
배열 요소들을 증가 순으로 정렬 |
concat(arr2) |
현재의 배열에 다른 arr2의 배열의 요소를 삽입한 새로운 배열을 만들어 리턴 |
slice(a,b) |
배열의 a요소부터 b요소를 포함하지 않은 배열값까지 가져와 새로운 배열 반환 |
배열을 활용하여 아파트 정보를 화면에 열거하는 소스.
var myArray = new Array();
var titleArray = new Array ("동호수를", "이름을", "평수를", "방갯수를", "화장실 갯수를");
i = 0;
k = 0;
flag = 0;
while (confirm("아파트 정보를 입력할까요?")) {
myArray[i] = new Array();
for (j=0; j<5; j++){
myArray[i][j] = prompt (titleArray[j]+"입력해주세요","");
}
i++;
}
document.write ("<table>");
document.write ("<tr><td>동호수</td><td>이름</td><td>평수</td><td>방 갯수</td><td>욕실 갯수</td></tr>");
for (i=0;i<myArray.legth;i++) {
document.write("<tr>");
for(j=0;j<myArray[i].legth;j++){
document.write("<td>"+myArray[i][j]+"</td>");
}
document.write("</tr>");
}
document.write("</table>");
string 형 변수 처리 메소드
length : 문자열의 길이 (한글도 1로 처리함)
charAt(숫자) : 숫자 위치에 해당하는 문자
indexOf(문자 또는 문자열) : 문자 또는 문자열이 나오는 위치를 숫자로 반환 (왼쪽부터 시작함)
substring(num1, num2) ; num1 위치에서 num2 - 1 위치 사이에 있는 문자열 (소문자로 씀)
split(대상, "기준 문자") : 대상 문자열을 기준 문자로 잘라서 배열로 열거
숫자를 넣으면 천 단위로 "," 표시를 넣어주는 예제
function changeMoney() {
var f = document.myForm;
var tempString = " ";
var rsString = " ";
tempString = f.beforeValue.value;
tempString = tempString.replace(/,/g,'');
for(x=1; x<=tempString.length; x++) {
if (x > i && (x%3) == 1) {
rsString = tempString.charAt(tempString.length - x) + "," + rsString;
} else {
rsString = tempString.charAt(tempString.length - x) + rsString;
}
}
f.afterValue.value = rsString;
}
isFinite()
괄호 안의 값이 유한수인지 무한수인지 구별해 주는 자바스크립트 함수.
유한수이면 True를 리턴하고 무한수이면 False를 리턴해줌.
document.write ("MyLove" + isFinite("MyLove") + "<br>"); //false
document.write ("1976/12/01" + isFinite("1976/12/01") + "<br>"); //false
document.write ("300" + isFinite("300") + "<br>"); //true
document.write ("-1.23" + isFinite("-1.23") + "<br>"); //true
document.write ("0" + isFinite("0") + "<br>"); //true
Escape()
문자열을 아스키(ASCII)값으로 변환해주는 내장 함수. 특수문자에 문제가 있을 경우 대비하기 위해서 사용.
get방식으로 보낼 때 보안을 위해서도 사용하며 보편적으로 URL을 인코딩할 때 사용함.
Escape() 함수로 처리를 하게 되면 해당 값은 16진수로 변경된다.
변경된 값을 다시 복구하는 함수는 Unescape() 함수이다.
실제 실무에서는 Escape, Unescape보다는 별로의 암호화 모듈을 사용한다.
function changeEscape () {
var str = "";
str = "어쩌고 저쩌고 눈누난나";
str = str + "-1862.7.14~1918.2.6";
str = str + "-abcdef";
alert(escape(str));
}
<button type="button" onclick="changeEscape()">escape 변환</button>
Unescape()
Escape() 함수와 반대로 Escape() 함수로 인코딩된 문자열을 복원시키는 자바스크립트 내장 함수.
var str = "";
str = "저쩌고 어쩌고 랄라랄라";
str = str + "-1862.7.14~1918.2.6";
str = str + "-fedcba";
str = escape(str);
document.write("escape()=>" + str + "<br>");
alert("unescape=>" + unescape(str));
<button type="button" onclick="changeUnescape()">unescape 변환</button>
isNaN()
괄호 안의 입력값이 문자인지 숫자인지를 구별해 주는 함수.
문자이면 true, 숫자이면 false를 리턴해 준다.
function isNaNCheck() {
document.write("myLove" + isNaN("myLove") + "<br>"); // true
document.write("1976/12/01" + isNaN("1976/12/01") + "<br>"); // true
document.write("300" + isNaN(300) + "<br>"); // false
document.write("-1.23" + isNaN(-1.23) + "<br>"); // false
document.write("0" + isNaN(0) + "<br>"); // false
}
<button type="button" onclick="isNaNCheck()">isNaN결과</button>
parseInt()
문자열을 정수로 변환시켜 주는 자바스크립트 내장 함수.
매개 변수를 이용하여 8진수, 16진수 등의 수를 10진수로도 변환이 가능함.
숫자형과 문자형이 혼합된 문자열에서 숫자형 뒤에 오는 문자형은 0을 반환하고
숫자만 출력시켜 주고, 소수인 경우에는 소수점 이하를 버리고 정수만 반환.
function parse() {
var f = document.form1;
var x = new Array();
x[0] = "parseInt(128) =" + parseInt("128") + "<br>"; // 128
x[1] = "parseInt(3.14) =" + parseInt("3.14") + "<br>"; // 3
x[2] = "parseInt(0811) =" + parseInt("0811") + "<br>"; // 0
x[3] = "parseInt(18000원) =" + parseInt("18000원") + "<br>"; // 18000
x[4] = "parseInt(13,8) =" + parseInt("13",8) + "<br>"; // 11
x[5] = "parseInt(28,26) =" + parseInt("28",16) + "<br>"; // 40
x[6] = "parseInt(0x11) =" + parseInt("0x11") + "<br>"; // 17
x[7] = "parseInt(10 20 30) =" + parseInt("10 20 30") + "<br>"; // 10
f.result.value=x;
}
<form name="form1">
<button type="button" onclick="parse()">확인</button>
<button type="button" onclick="reset()">지우기</button>
<textarea name="result">
</form>
parseInt("28", 16)의 형태는 16진수 28을 10진수로 표현하라는 뜻.
parseFloat()
문자열을 부동소수점으로 변환시켜 주는 자바스크립트 내장 함수.
function parse() {
var f = document.form1;
var x = new Array();
x[0] = "parseFloat(128) =" + parseFloat("128") + "<br>"; // 128
x[1] = "parseFloat(3.14) =" + parseFloat("3.14") + "<br>"; // 3.14
x[2] = "parseFloat(3.14.87) =" + parseFloat("3.14.87") + "<br>"; // 3.14
x[3] = "parseFloat(18000원) =" + parseFloat("18000원") + "<br>"; // 18000
x[4] = "parseFloat(18000.05원) =" + parseFloat("18000.05원") + "<br>"; // 18000.05
x[5] = "parseFloat(10.20.30) =" + parseFloat("10.20.30") + "<br>"; // 10.2
}
<form name="form1">
<button type="button" onclick="parse()">확인</button>
<button type="button" onclick="reset()">지우기</button>
<textarea name="result">
</form>
ScriptEngine()
현재 사용중인 스크립트 언어가 무엇인지를 리턴해 줌.
Jscript |
Microsoft Jscript |
VBA |
Microsoft visual Basic for Application |
VBScript |
Microsoft visual Basic Script Edition |
document.write('ScriptEngine() return=' + scriptEngine());
ScriptEngineMajorVersion() : 사용중인 스크립트 엔진의 주 버전 정보를 반환, 반환값은 사용 중인 스크립트 언어의 동적 연결 라이브러리(DLL)에 포함된 정보와 같다.
ScriptEngineMinorVersion() : 사용중인 스크립트 엔진의 보조 버전 번호를 반환
ScriptEngineBuildVersion() : 사용중인 스크립트 엔진의 작성 버전
function parse() {
var f = document.form1;
f.result.value = "ScriptEngine 버전 = " + ScriptEngine() + "" + ScriptEngineMajorVersion() + "." + ScriptEngineMinorVersion() + "," + ScriptEngineBuildVersion();
//ScriptEngine 버전 = JScript 5.6.8825
}
<form name="form1">
<button type="button" onclick="parse()">확인</button>
<button type="button" onclick="reset()">지우기</button>
<textarea name="result">
</form>