JavaScript는 인터넷에서 가장 널리 사용되는 스크립트 언어입니다. 이 언어는 HTML 및 웹에 사용할 수 있으며 서버, PC, 노트북, 태블릿, 스마트폰 및 기타 장치에서 널리 사용될 수 있습니다.
JavaScript의 특징
JavaScript는 ECMA(유럽 컴퓨터 제조업체 협회)에서 ECMAScript를 통해 언어로 표준화되었습니다.
연도 | 이름 | 설명 |
---|---|---|
1997 | ECMAScript 1 | 첫 번째 버전 |
1998 | ECMAScript 2 | 버전 변경 |
1999 | ECMAScript 3 | 정규식 추가 try/catch 추가 |
ECMAScript | 4 | 는 |
출시 | 되지 않았습니다. | |
2009 | ECMAScript 5에는 | "엄격 모드"가 추가되었으며, 엄격 모드에는 JSON 지원이 추가되었습니다. |
2015 | ECMAScript | 6 |
에는 | 지수 | 연산자(**)가 추가되었습니다. Array.prototype.includes |
HTML의 스크립트는 <script> 및 </script> 태그 사이에 있어야 합니다. 스크립트는 HTML 페이지의 <body> 및 <head> 섹션에 배치할 수 있습니다.
사용자가 버튼을 클릭하는 등 이벤트가 발생할 때 코드를 실행해야 하는 경우가 많습니다. JavaScript 코드를 함수에 넣으면 이벤트가 발생할 때 함수를 호출할 수 있습니다.
예 1: 헤드
<!DOCTYPE html>의 스크립트 함수
<html lang="ko"> <머리> <meta charset="UTF-8"> <title>head 태그의 스크립트</title> <스크립트> 함수 myFunction() { document.getElementById("demo").innerHTML = "이것은 내 기능입니다"; } </script> </head> <본문> <h1>내 기능</h1> <p id="demo">단락</p> <button type="button" onclick="myFunction()">이것은 함수입니다</button> </body> </html>
예 2: 본문
<!DOCTYPE html>의 스크립트 함수
<html lang="ko"> <머리> <meta charset="UTF-8"> <title>본문의 스크립트</title> </head> <본문> <h1>내 기능</h1> <p id="demo">내 기능</p> <button type="button" onclick="myFunction()">클릭</button> <스크립트> 함수 myFunction() { document.getElementById("demo").innerHTML = "이것은 내 기능입니다." } </script> </body> </html>
호출을 위해 JavaScript를 외부에 배치할 수도 있습니다. 외부 확장자는 .js입니다.
예시 3: 외부 호출 JavaScriptExternal
call.js
function myFunction() { document.getElementById('demo').innerHTML = "이것은 내 기능입니다." }
외부 스크립트 호출
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>외부 스크립트 호출</title> </head> <본문> <p id="demo">텍스트 단락</p> <button type="button" onclick="myFunction()">사용해 보세요</button> <script src="external script.js"></script> </body> </html>JavaScript
데이터는 다양한 방법으로 출력될 수 있습니다.
예제 1: aler() 팝업 창 출력
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>경고 출력</title> </head> <본문> <h1>경고 출력</h1> <스크립트> window.alert(5 + 6) </script> </body> </html>
예제 2: document.write() 출력
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>document.write 출력</title> </head> <본문> <h1>document.write 출력</h1> <스크립트> document.write(날짜()); document.write("안녕하세요, 웹!"); </script> </body> </html>
예 3: HTML 문서
<!DOCTYPE html>에 쓰기
<html lang="ko"> <머리> <meta charset="UTF-8"> <title>HTML 문서에 쓰기</title> </head> <본문> <h1>HTML 문서에 쓰기</h1> <스크립트> 함수 myFunction() { document.write("함수 출력"); } </script> <button onclick="myFunction()">여기를 클릭하세요</button> </body> </html>
예제 4: console.log()를 사용하여 브라우저 콘솔에 쓰기
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>console.log()를 사용하여 브라우저 콘솔에 기록</title> </head> <본문> <h1>console.log()는 브라우저의 콘솔에 기록합니다</h1> <스크립트> a = 5; b = 6; c = a + b; 콘솔.로그(c) </script> </body> </html>
JavaScript는 가볍지만 강력한 프로그래밍 언어입니다.
리터럴
프로그래밍 언어에서는 일반적으로 고정된 값을 리터럴이라고 합니다.
입니다. JavaScript에서는 명령문이 ";"으로 종료되어야 합니다. JavaScrip
변수
프로그래밍 언어에서는 변수는 데이터 값을 저장하는 데 사용됩니다. JavaScript는 var 키워드를 사용하여 변수를 정의하고 등호를 사용하여 변수에 값을 할당할 수 있습니다.
var y = false // 부울 값 var length = 16; // 숫자 var points = x * 10; // 숫자 계산 var lastName = "Johnson"; // 문자열 var cars = ["Saab", "Volvo", "BMW"] // 배열 var person = "John", lastName:"Doe"}; // 객체 사전
JavaScript function
동일한 함수를 반복적으로 참조하고 코드 작성 및 유지 관리의 편의성을 줄이기 위해 JavaScript는 function 키워드에 따라 함수 함수를 제공합니다:
function myFunc (a , 비) { return a + b; // a+b의 결과를 반환합니다.
자바스크립트 기능
다른 언어와 비교하여 자바스크립트에는 다음과 같은 특징이 있습니다.
abstract | else | 인스턴스of | super |
boolean | enum | int | 스위치 |
중단 | 내보내기 | 인터페이스 | 동기화된 |
바이트 | 확장 | 이 | 경우 |
false | 긴 | 던지기 | 잡기 |
최종 | 기본 | 던지기 | char |
최종적 | 으로 | 새로운 | 임시 |
클래스 | float | null | true |
const | for | 패키지 | 시도 |
계속 | 함수 | 비공개 | 유형의 |
디버거 | goto | protected | var |
default | if | public | void |
delete | 구현 | return | 휘발성 |
do | import | short | while |
double | in | static | with |
JavaScript comment(Java와 동일)
// 코드는 다음과 같습니다: 단일 문장 주석, 일반적으로 편집기에서 Ctrl + L 키.
/* 코드입니다*/: 여러 줄 주석, 일반적으로 편집기의 Ctrl + Shift + L 키입니다.
JavaScript 명령문은 브라우저에 수행할 작업을 알려주는 명령입니다.
다음 JavaScript 문은 id="demo"인 HTML 요소에 "Hello World!"라는
텍스트를 출력합니다.
document.getElementById("demo").innerHTML = "Hello World!";
중괄호는 Java와 매우 유사합니다.
Java 식별자
문 | 설명 |
---|---|
break는 | 루프를 중단하는 데 사용됩니다. |
try 문 블록을 실행하는 동안 오류가 발생하면 | catch | 문 블록이 실행됩니다.
continue는 | 루프에서 반복을 건너뜁니다. |
do ... while은 | 명령문 블록을 실행하고 조건문이 true일 때 명령문 블록을 계속 실행합니다. |
for는 | 조건문이 참일 때 지정된 횟수만큼 코드 블록을 실행할 수 있습니다. |
for ... in은 | 배열이나 객체의 속성을 순회하는 데 사용됩니다(배열이나 객체의 속성을 통해 반복). |
다양한 조건에 따라 다양한 작업을 수행하는 | if...else |
함수 | 를 정의합니다 |
복귀 | 종료 기능 |
스위치 | 는 다양한 조건에 따라 다양한 작업을 수행하는 데 사용됩니다. |
throw는 오류를 | 발생 | (생성)합니다.
try는 | 오류 처리를 구현하고 catch와 함께 사용됩니다. |
var는 | 변수를 선언합니다. |
while | 조건문이 참일 때 해당 문장 블록을 실행합니다. |
대부분의 언어는 공백을 자동으로 완성할 수 있습니다. 명확하고 아름답게 만들기 위해 연산자 양쪽에 공백을 추가하는 것이 좋습니다. 그러나 HTML에서는 공백 사용에 주의하고 어지럽히지 않아야 합니다. JavaScript에서는 다음 두 문장이 동일합니다.
var a = 10; var b=10;
Python과 유사하게 JavaScript도 스크립팅 언어이며 해석됩니다.
정의 객체
모든 것은 객체, 즉 동일한 특성을 가진 사물 간의 추상적인 특성 인스턴스입니다. 인간 사이의 Xiao Ming처럼.
JavaScript에서 객체는 객체의 속성을 정의하는 Python의 사전이나 Java의 해시 맵과 유사한 속성 변수의 컨테이너입니다.
var 사람들 = { 이름: "마이크", 성: "스미스", 나이: "18", 주소: "베이징", 직업: "학생" };
위의 내용은 객체 정의입니다. 물론 한 줄로 작성해도 되지만, 앞으로는 이렇게 작성해 주시길 바랍니다.
개체 속성에 액세스하려면
"JavaScript 개체는 변수의 컨테이너입니다"라고 말할 수 있습니다. 그러나 우리는 일반적으로 "JavaScript 객체를 키-값 쌍의 컨테이너"로 생각합니다. 키-값 쌍은 일반적으로 key : value로 작성됩니다(키와 값은 콜론으로 구분됨). 키-값 쌍은 일반적으로 JavaScript 개체에서 개체 속성이라고 합니다. 또한 범용 "."을 통해 속성에 액세스합니다(대부분의 언어에서 이를 사용함).
<!DOCTYPE HTML> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>이 사이트입니다</title> </head> <본문> <h1>액세스 클래스 속성</h1> <!--다음 명령문은 스크립트 앞에 와야 합니다--> <p id="데모"></p> <스크립트> var 사람들 = { 이름: "마이크", 성: "스미스", 나이: "18", 주소: "베이징", 직업: "학생" }; document.getElementById("demo").innerHTML = people["firstName"] + "." + people.lastName; </script> </body> </html>
두 가지 액세스 방법, 개체 이름.속성 또는 개체 이름.["속성"]을 사용할 수 있습니다.
함수는 호출 시 실행되는 이벤트 기반 또는 재사용 가능한 코드 블록입니다. 이 함수가 호출되면 함수 내의 코드가 실행됩니다. 함수는 이벤트가 발생할 때(예: 사용자가 버튼을 클릭할 때) 직접 호출할 수 있으며 JavaScript를 통해 어디서나 호출할 수 있습니다.
매개변수 및 반환 값
함수를 호출할 때 매개변수라고 하는 값을 함수에 전달할 수 있으며 매개변수 수에는 제한이 없습니다.
함수 myFunction( var1 , var2 )
{
암호
}
매개변수를 호출할 때 아래와 같이 순서에 따라 매개변수를 전달해야 합니다.
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>자바스크립트 웹사이트입니다</title> </head> <본문> <h1>함수 매개변수 전달 문제</h1> <p>아래 버튼을 클릭하시면 전화연결됩니다</p> <button onclick="myFunc('Mike','18','Beijing')">여기를 클릭하세요</button> <스크립트> function myFunc(이름, 나이, 주소) { Alert("내 이름은 " + 이름 + ", 나이는 " + age + ", 내 집은 " + 주소에 있습니다); } </script> </body> </html>
JavaScript 함수는 반환 값을 가질 수 있으며 반환 키워드는 return입니다. 함수가 값을 반환하면 함수 실행이 중지되고 return 이후의 문은 실행되지 않습니다.
예: 두 숫자의 곱을 계산하고 결과를 반환합니다
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>자바스크립트 웹사이트</title> </head> <본문> <h1>두 숫자의 값을 계산하고 반환</h1> <p id="데모"></p> <스크립트> 함수 myFunc(a, b) { a * b를 반환; } document.getElementById("demo").innerHTML = myFunc(3, 4); </script> </body> </html>
변수
JavaScript 변수는 두 가지 유형으로 구분됩니다.
선언되지 않은 JavaScript 변수에 값을 할당하면 해당 변수는 자동으로 창의 속성으로 처리됩니다. 예를 들어 다음 문은
name = "Mike"
라는 속성 이름을 선언합니다. Non-Strict 모드에서 선언되지 않은 변수에 값을 할당하여 생성된 전역 변수는 전역 개체의 구성 가능한 속성이며 삭제가 가능합니다. 예:
var var1 = 1; // 전역 속성은 구성할 수 없습니다. var2 = 2; // var 선언이 없으면 전역 속성을 구성할 수 있습니다. console.log(this.var1); console.log(window.var1); // 1 delete var1; // false는 console.log(var1)을 삭제할 수 없습니다. //1 var2 삭제; console.log(var2 삭제); // 참 console.log(var2); // 오류 변수가 삭제되었습니다. 정의되지 않은
설명:
HTML 이벤트는 HTML 요소에서 발생하는 것입니다. HTML 페이지에서 JavaScript를 사용하면 JavaScript가 이러한 이벤트를 트리거할 수 있습니다.
HTML 이벤트는 브라우저 작업일 수도 있고 사용자 작업일 수도 있습니다. 다음은 HTM 이벤트의 예입니다.
일반적으로 이벤트가 발생하면 작업을 수행할 수 있습니다. JavaScript는 이벤트가 트리거될 때 일부 코드를 실행할 수 있습니다. 이벤트 속성을 HTML 요소에 추가할 수 있으며 JavaScript 코드를 사용하여 HTML 요소를 추가할 수 있습니다.
<!DOCTYPE html> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>자바스크립트 이벤트</title> </head> <본문> <h1>JavaScript 이벤트를 처리하는 두 가지 방법</h1> <p id="demoOne"></p> <button onclick="getElementById('demoOne').innerHTML=Date()">시간을 보려면 클릭하세요 1</button> <p id="demoTwo"></p> <button onclick="this.innerHTML=Date()">시간을 보려면 클릭하세요 2</button> </body> </html>
JavaScript는 일반적으로 여러 줄로 구성된 코드이며 덜 일반적인 코드는 이벤트 속성을 통해 호출됩니다.
<!DOCTYPE HTML> <html lang="ko"> <머리> <meta charset="UTF-8"> <title>자바스크립트 이벤트</title> </head> <본문> <h1>자바스크립트 이벤트 속성 호출</h1> <p><em>myFunc()</em> 함수를 실행하려면 클릭하세요.</p> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { document.getElementById("one").innerHTML = 날짜(); } </script> </body> </html>
이벤트 | 설명 |
---|---|
onchange | HTML 요소 변경 |
onclick | 사용자가 HTML 요소를 클릭합니다 | .
onmouseover | 사용자가 HTML 요소 위에서 마우스를 이동합니다. |
onmouseout | 사용자가 HTML 요소에서 마우스를 멀리 이동합니다. |
onkeydown | 사용자가 키보드 키를 누릅니다 |
. onload | 브라우저가 페이지를 완료했습니다. 로딩 후에도 더 많은 이벤트가 계속 학습됩니다 |
이벤트 역할
이벤트는 양식 유효성 검사, 사용자 입력, 사용자 행동 및 브라우저 작업을 처리하는 데 사용될 수 있습니다.
여러 가지 방법을 사용하여 JavaScript를 실행할 수 있습니다. 이벤트 코드:
모음입니다.
var a = "abc"; var b = "Hello";
Python과 마찬가지로 인덱스를 사용하여 문자열의 각 문자에 액세스할 수 있습니다.
var c = b[1]; // e
length
이 속성은 문자열의 길이를 계산할 수 있습니다.
<!DOCTYPE HTML> <html> <머리> <meta charset="utf-8"> <title>문자열 길이</title> </head> <본문> <스크립트> var txtOne = "안녕하세요!"; document.write("<p>" + txtOne.length + "</p>"); var txtTwo = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; document.write("<p>" + txtTwo.length + "</p>"); </script> </body> </html>
JavaScript에는 몇 가지 특수 문자도 있습니다. 예를 들어 따옴표를 인쇄하려면 ""를 추가하여 이스케이프해야 합니다. 그렇지 않으면 컴파일러가 이를 구문 분석할 수 없습니다.
코드 | 출력 |
---|---|
' | 작은따옴표 |
" | 큰따옴표 |
\ | 백슬래시 |
n 라인 | 피드 |
r캐리지 | 리턴 |
ttab | (탭 문자) |
b백스페이스 | 문자 |
fformfeed |
을 개체로 사용하며
일반적으로 JavaScript 문자열은 기본 값이며 문자를 사용하여 생성할 수 있습니다: var firstName = "Mike". 하지만 new 키워드를 사용하여 문자열을 객체로 정의할 수도 있습니다. var firstName = new String("Mike"). 이는 Java
속성 | 설명 |
---|---|
생성자는 | 문자열을 생성하는 함수를 반환합니다. 속성 |
길이는 | 문자열의 길이를 반환합니다. |
프로토타입은 | 개체 문자열에 속성과 메서드를 추가할 수 있도록 합니다. |
메서드 | 설명 |
---|---|
charAt() | 는 지정된 인덱스 위치에 있는 문자를 반환합니다 | .
charCodeAt()는 | 지정을 반환합니다. |
concat()은 | 두 개 이상의 문자열을 연결하여 연결된 문자열을 반환합니다. |
fromCharCode | ( |
)는 | 유니코드를 문자열로 변환합니다 |
. | |
문자열 | |
lastIndexOf()는 | 문자열에서 지정된 문자가 마지막으로 나타나는 위치를 반환합니다. |
localeCompare()는 | 로컬 특정 순서를 사용하여 두 문자열을 비교합니다. |
( | ) |
는 | 하나 이상의 정규 표현식과 일치하는 항목을 찾습니다 | .
정규식 일치하는 하위 문자열 | |
search() | 정규식과 일치하는 값을 검색합니다. |
Slice()는 | 문자열의 일부를 추출하고 추출된 부분을 새 문자열로 반환합니다. |
Split() | 은 문자열을 하위 문자열 배열로 분할합니다. |
substr() | 지정된 문자열을 추출합니다. 시작 인덱스 번호 부분 문자열부터 문자열의 문자 수 |
() | 문자열에서 지정된 두 인덱스 번호 사이의 문자를 추출합니다. |
toLocaleLowerCase () | 호스트의 로케일에 따라 문자열을 소문자로 변환합니다. 언어는 몇 가지뿐입니다. (예: 터키어)에는 호스트의 로케일에 따라 문자열을 대문자로 변환하기 위한 toLocaleUpperCase() 지역별 대소문자 매핑이 있습니다 |
. | 소수의 언어(예: 터키어)에만 문자열을 변환하기 위한 지역별 대소문자 매핑 |
toLowerCase | () |
로 변환 | |
toString() | 문자열 객체 값을 반환합니다. |
toUpperCase() | 문자열을 대문자로 변환합니다. |
Trim() | 문자열의 앞뒤 공백을 제거합니다. |
valueOf() | 문자열 객체의 원래 값을 반환합니다. |
== 및 === 차이점
1. 문자열, 숫자 등 기본형의 경우
"포인터 주소" 비교에서 ==와 === 사이에는 차이가 없습니다.
기본
유형과 고급 유형 간에는 차이가 있습니다.
4. !=는 ==의 비연산, !==는 =의 비연산입니다. ==
var 숫자=1; var str="1"; var 테스트=1; test == num //true 같은 타입, 같은 값 test === num //true 같은 타입, 같은 값 test !== num //false test는 num과 같은 타입이고, 그 값도 같습니다. 비연산은 거짓이어야 합니다 num == str //true str을 숫자로 변환하고 같은지 확인합니다. num != str //false == 비연산 num === str //false 타입이 다르므로 false를 직접 반환 num !== str //true num과 str의 유형이 다르다는 것은 비연산이 당연히 true임을 의미합니다.
연산자 | 설명 | 예 | x 연산 결과 | y 연산 결과 |
---|---|---|---|---|
+ | 덧셈 | x =y+2 | 7 | 5 |
-뺄셈 | x | =y-2 | 3 | 5 |
* | 곱셈 | x=y*2 | 10 | 5 |
/ | 나눗셈 | x=y/2 | 2.5 | 5 |
% | 모듈로(나머지) | x=y%2 | 1 | 5 |
++ | 증분 | x =++y | 6 | 6 |
x=y++ | 5 | 6 | ||
--decrement | x= | --y | 4 | 4 |
x=y-- | 5 | 4 |
연산자 | 예는 | 연산과 동일합니다 | . Result |
---|---|---|---|
= | x =y | x=5 | |
+= | x+=y | x=x+y | x=15 |
-= | x-=y | x=xy | x=5 |
*= | x*=y | x=x*y | x=50 |
/= | x/=y | x= x/y | x=2 |
%= | x%=y | x=x%y | x=0 |
연산자 | 설명 | 비교 | 반환 값 |
---|---|---|---|
== | 같음 | x==8 | false |
x==5 | true | ||
= = = | 완전히 같음(값과 유형이 모두 같음) | x==="5" | false |
x===5 | true | ||
!= | x!=8 | 과 같지 않음 | true |
!== | 절대적으로 같지 않음(값과 유형 중 하나가 같지 않음) 같음, 또는 둘 다 같지 않음) | x!=="5" | true |
x!==5 | false | ||
> | x보다 큼 | >8 | false |
< | x< | 8 | 보다 |
작음 | true>= | x>=8 | false |
<= | x<= 8 | 보다 작거나 같음 | true |
<= | x<=8 | 보다 작거나 같음 | true |
연산자 | 설명 | 예 |
---|---|---|
&& | 및 | (x < 10 && y > 1)는 다음과 같습니다. true |
|| | 또는 | (x== 5 || y==5)는 false |
! | (x==y)는 true입니다 | . |
JavaScript에는 특정 조건에 따라 변수에 값을 할당하는 조건 연산자도 포함되어 있습니다. 예:
Variablename=(condition)?value1:value2
JavaScript에서는 다음과 같은 조건문을 사용할 수 있습니다.
if 문을
조건이 true인 경우에만 코드가 실행됩니다. 예:
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>자바스크립트 웹사이트</title> </head> <본문> <h1>if 문입니다</h1> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { var x = ""; var time = new Date().getHours(); 만약 (시간 < 20) { x = "안녕하세요, 20시 이전"; } document.getElementById("one").innerHTML = x; } </script> </body> </html>
if...else 문
if...else 문을 사용하여 조건이 true인 경우 코드를 실행하고 조건이 false인 경우 다른 코드를 실행합니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>자바스크립트 웹사이트</title> </head> <본문> <h1>if...else 문입니다</h1> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { var x = ""; var time = new Date().getHours(); 만약 (시간 < 20) { x = "안녕하세요, 20시 이전"; }또 다른 { x = "안녕하세요, 20시 이후"; } document.getElementById("one").innerHTML = x; } </script> </body> </html>
여러 if..else 문
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>자바스크립트 웹사이트</title> </head> <본문> <h1>여러 개의 if...else 문</h1> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { var x = ""; var time = new Date().getHours(); 만약 (시간 < 12) { x = "좋은 아침입니다"; } else if (시간 < 14) { x = "안녕하세요"; } 또 다른 { x = "안녕하세요"; } document.getElementById("one").innerHTML = x; } </script> </body> </html>
switch 문
switch 문을 사용하여 실행할 여러 코드 블록 중 하나를 선택합니다. 예:
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>자바스크립트 웹사이트</title> </head> <본문> <h1>스위치 문</h1> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { var x = ""; var time = new Date().getMonth(); 스위치 (시간) { 사례 0: x = "1월"; 부서지다; 사례 1: x = "2월"; 부서지다; 사례 2: x = "3월"; 부서지다; 사례 3: x = "4월"; 부서지다; 사례 4: x = "5월"; 부서지다; 사례 5: x = "제인"; 부서지다; 사례 6: x = "7월"; 부서지다; 사례 7: x = "8월"; 부서지다; 사례 8: x = "9월"; 부서지다; 사례 9: x = "10월"; 부서지다; 사례 10: x = "11월"; 부서지다; 사례 11: x = "12월"; 부서지다; 기본: x = "오류"; } document.getElementById("one").innerHTML = x; } </script> </body> </html>
JavaScript는 다양한 유형의 루프를 지원합니다.
<!DOCTYPE html>
에 대해
<html> <머리> <meta charset="utf-8"> <title>자바스크립트 루프</title> </head> <본문> <h1>코드를 5번 반복하려면 버튼을 클릭하세요. </h1> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="데모"></p> <스크립트> 함수 myFunc() { var x = ""; for (var i = 0; i < 5; i++) { x = x + "숫자는" + i + "<br>"; } document.getElementById("demo").innerHTML = x; } </script> </body> </html>
fo /in 루프
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>개체의 개인 속성을 탐색하려면 아래 버튼을 클릭하세요.</p> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { x를 보자; 텍스트 = ""; const 사람 = { 이름: "빌", 성: "게이트", 나이: 56 }; (x 직접) { 텍스트 = 텍스트 + " " + 사람[x]; } document.getElementById("one").innerHTML = 텍스트; } </script> </body> </html>
while 루프
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>버튼을 클릭하면 i가 5보다 작으면 출력이 인쇄됩니다</p> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="one">여기에 표시</p> <스크립트> 함수 myFunc() { x = "", i = 0이라고 가정합니다. 동안 (i < 5) { x = x + "이 숫자는" + i + "<br>"; 나++; } document.getElementById("one").innerHTML = x } </script> </body> </html>
do/while 루프
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>5보다 작은 숫자를 인쇄하려면 버튼을 클릭하세요</p> <button onclick="myFunc()">여기를 클릭하세요</button> <p id="1"></p> <스크립트> 함수 myFunc() { x = ""로 놔두세요; 내가 = 0이라고 하자; 하다 { x = x + "숫자는" + i + "<br>"; 나++; } 동안(i < 5); document.getElementById("one").innerHTML=x; } </script> </body> </html>
for 루프와 while 루프 비교
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>펑크원입니다</p> <button onclick="funcOne()">funcOne 클릭</button> <p id="one">funcOne이 왔습니다</p> <p>이것은 funcTwo입니다</p> <button onclick="funcTwo()">funcTwo 클릭</button> <p id="two">funcTwo가 왔습니다</p> <스크립트> 함수 funcOne() { 숫자 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 내가 = 0이라고 하자; addRes = 0으로 놔두세요; 동안 (숫자[i]) { addRes += 숫자[i]; 나++; } document.getElementById("one").innerHTML = addRes + "<br>"; } 함수 funcTwo() { 숫자 = [1, 2, 3, 4, 5, 6, 7, 8, 9]; 내가 = 0이라고 하자; mulRes = 1로 설정합니다. for (; 숫자[i];) { mulRes *= 숫자[i]; 나++; } document.getElementById("two").innerHTML = mulRes + "<br>"; } </script> </body> </html>
Break 및 Continue
break 문은 루프를 중단하는 데 사용됩니다. continue는 루프에서 반복을 건너뛰는 데 사용됩니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>continue 및 break 문입니다</p> <button onclick="funcOne()">funcOne 클릭</button> <p id="one">funcOne입니다</p> <br> <br> <br> <br> <br> <br> <button onclick="funcTwo()">funcTwo 클릭</button> <p id="two">이것은 funcTwo입니다</p> <스크립트> 함수 funcOne() { x = ""로 놔두세요; 내가 = 0이라고 하자; for (i = 0; i < 10; i++) { 만약 (i < 5) { 부서지다; } x = x + "숫자는" + i + "<br>"; } document.getElementById("one").innerHTML = x; } 함수 funcTwo() { x = ""로 놔두세요; 내가 = 0이라고 하자; for (i = 0; i < 10; i++) { if (i === 8) { 계속하다; } x = x + "숫자는" + i + "<br>"; } document.getElementById("two").innerHTML = x; } </script> </body> </html>
typeof 연산자를 사용하여 변수의 데이터 유형을 감지합니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p id="1"></p> <스크립트> document.getElementById("one").innerHTML = "John" + "<br>" + 유형 3.14 유형 + "<br>" + false 유형 + "<br>" + 유형[1, 2, 3, 4] + "<br>" + typeof {이름: '존', 나이: 34}; </script> </body> </html>
JavaScript에서 배열은 특별한 객체 유형입니다. 따라서 typeof [1,2,3,4]는 객체를 반환합니다.
null은 비어 있음, 즉 "아무것도 없음"을 의미합니다. typeof 감지를 사용하면 객체가 반환됩니다. 정의되지 않은 객체를 사용하여 객체를 지울 수 있습니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>하나:</p> <p id="1"></p> <p>둘:</p> <p id="두"></p> <스크립트> var person = {firstName: "Bill", lastName: "Gates", age: 50}; var 사람 = null; document.getElementById("one").innerHTML = 사람 유형; 사람 = 정의되지 않음 document.getElementById("two").innerHTML = 사람 유형; </script> </body> </html>
생성자 속성은 모든 JavaScript 변수의 생성자를 반환합니다. 생성자 속성을 사용하여 객체가 배열인지 또는 날짜(문자열 "Date" 포함)인지 등을 확인할 수 있습니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>생성자 속성은 변수나 생성자를 반환합니다.</p> <p id="one">HRER</p> <스크립트> document.getElementById("one").innerHTML = "안녕하세요".constructor + "<br>" + 3.14.생성자 + "<br>" + false.constructor + "<br>" + [1, 2, 3].constructor + "<br>" + {이름: "안녕하세요", 나이: 18}.constructor + "<br>" + new Date().constructor + "<br>" + 기능 () { }.건설자; </script> </body> </html>
JavaScript 변수는 새로운 변수나 다른 데이터 유형으로 변환될 수 있습니다.
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>String() 메소드는 숫자를 문자열로 변환할 수 있습니다</p> <p id="one">여기</p> <p>toString() 메소드는 숫자를 문자열로 변환할 수 있습니다</p> <p id="two">여기</p> <스크립트> x = 123이라고 하자; document.getElementById("one").innerHTML = 문자열(x) + "<br>" + 문자열(123) + "<br>" + 문자열(100 + 23); document.getElementById("two").innerHTML = x.toString() + "<br>" + (123).toString() + "<br>" + (100 + 123.2).toString(); </script> </body> </html>
연산자+를 사용하여 변수를 숫자로 변환할 수 있습니다:
<!DOCTYPE html> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <P>typeof 연산자는 변수 또는 표현식 유형을 반환합니다.</P> <button onclick="myFuncOne()">여기를 클릭하세요</button> <p id="one">여기</p> <button onclick="myFuncTwo()">여기 두 개를 클릭하세요</button> <p id="two">여기</p> <스크립트> 함수 myFuncOne() { y = "5"로 설정; x = +y라고 하자; document.getElementById("one").innerHTML = y 유형 + "<br>" + x + "<br>" + x 유형; } 함수 myFuncTwo() { a = "안녕하세요"; b = +a라고 하자; document.getElementById("two").innerHTML = typeof a + "<br>" + b + "<br>" + typeof b; } </script> </body> </html>
기본 값 | 변환 숫자로 | 변환 문자열로 | 변환 부울 값으로 변환 |
---|---|---|---|
false | 0 | "false" | false |
true | 1 | "true" | true |
0 | 0 | "0" | false |
1 | 1 | "1" | true |
"0" | 0 | "0 " | true |
"000" | 0 | "000" | true |
"1" | 1 | "1" | true |
NaN | NaN | "NaN" | false |
Infinity Infinity | " | Infinity" | true |
-Infinity | -Infinity | "-Infinity" | true |
"" | 0 | "" | false |
"20" | 20 | " 20 " | true |
"Runoob" | NaN | "Runoob" | true |
[ ] | 0 | "" | true |
[20] | 20 | "20" | true |
[10,20] | NaN | "10,20" | true |
["Runoob"] | NaN | "Runoob" | true |
["Runoob " ,"Google"] | NaN | "Runoob,Google" | true |
function(){} | NaN | "function(){}" | true |
{ } | NaN | "[객체 개체]" | true |
null | 0 | "null" | false |
정의되지 않음 | NaN | "정의되지 않음" | false |
정규식(영어: 정규식, 종종 코드에서 regex, regexp 또는 RE로 축약됨)은 단일 문자열을 사용하여 특정 구문 규칙을 준수하는 일련의 문자열 검색 패턴을 설명하고 일치시킵니다.
search()
는 문자열에서 지정된 하위 문자열을 검색하거나 정규식과 일치하는 하위 문자열을 검색하고 하위 문자열의 시작 위치를 반환하는 데 사용됩니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>문자열 검색, 위치 일치</p> <button onclick="myFuncOne()">여기를 클릭하세요</button> <p id="one">여기</p> <button onclick="myFuncTwo()">여기 두 개를 클릭하세요</button> <p id="two">여기</p> <스크립트> 함수 myFuncOne() { let str = "안녕하세요, 월드!"; document.getElementById("one").innerHTML = str.search(/World/i); } 함수 myFuncTwo() { let str = "중국에 오신 것을 환영합니다!"; document.getElementById("two").innerHTML = str.search("중국"); } </script> </body> </html>
replacement()
는 문자열의 일부 문자를 다른 문자로 바꾸거나 정규식과 일치하는 하위 문자열을 바꾸는 데 사용됩니다.
<!DOCTYPE HTML> <html lang="zh-CN"> <머리> <meta http-equiv="content-Type" charset="UTF-8"> <meta http-equiv="x-ua-호환" content="IE=edge"> <title>제목</title> </head> <본문> <p>정규 표현식 교체() 교체</p> <button onclick="myFuncOne()">한 번 클릭</button> <p id="one">안녕하세요, 자바</p> <button onclick="myFuncTwo()">두 번 클릭</button> <p id = "two"> 안녕하세요, Java </p> <스크립트> 함수 myfuncone () { str = document.getElementById ( "One"). innerHtml; document.getElementById ( "One"). innerHtml = str.replace (/java/i, "python"); } 함수 myfunctwo () { str = document.getElementById ( "Two"). innerHtml; document.getElementById ( "2"). innerHtml = str.replace ( "java", "javascipt"); } </script> </body> </html>
정규 표현 패턴
자 수정 자 | 설명 |
---|---|
I를 | 수행합니다. |
G는 | 글로벌 경기를 수행합니다 (첫 경기가 발견 된 후 중지 대신 모든 경기를 찾습니다). |
M은 | 멀티 라인 매칭을 수행합니다. |
표현 | 설명 |
---|---|
[ABC]은 | 사각형 괄호 사이에서 문자를 찾습니다. |
[0-9]는 | 0에서 9까지의 숫자를 찾습니다. |
(x | y) | |. |
정량 자 | 설명 |
---|---|
N+는 | 하나 이상의 n을 포함하는 모든 문자열과 일치합니다. |
N*는 | 0 이상의 N을 포함하는 모든 문자열과 일치합니다. |
n은 | 0 또는 1 개의 문자열을 일치시킵니다. |
test ()는
문자열에 일치하는 텍스트가 포함 된 경우 문자열이 일치하는지 여부를 감지하는 데 사용됩니다. 그렇지 않으면 False를 반환합니다.
<!DOCTYPE HTML> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <스크립트> OBJ = New Regexp ( "e"); 부울 론 = obj.test를하자 ( "안녕하세요, javaScript입니다"); BOOLTWO = OBJ.TEST ( "this is javaScript"); document.write (boolone + "<br>" + booltwo); </script> </body> </html>
exec ()
는 문자열에서 일반 표현식의 일치를 검색하는 데 사용됩니다. 일치하지 않으면 반환 값이 NULL입니다.
<!DOCTYPE HTML> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <스크립트> OBJ = 새로운 regexp (/e/)를하자; Resone = obj.exec ( "안녕하세요, JavaScript입니다"); restwo = obj.exec ( "이것은 JavaScript입니다"); /*아니요는 null을 의미합니다*/ document.write (Resone + "<br>" + restwo); </script> </body> </html>
오류 유형
CATCH
THE TRY 문을 사용하면 실행 중 오류에 대해 테스트 된 코드 블록을 정의 할 수 있으며 Catch 문을 통해 Try Code 블록에서 오류가 발생할 때 실행되는 코드 블록을 정의 할 수 있습니다.
<!DOCTYPE HTML> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <input type = "button"value = "view"onclick = "myfunc ()"> <스크립트> txt = ""를하자; 함수 myfunc () { 노력하다 { Alert111 ( "안녕하세요, 세계!") } 캐치 (err) { txt = "여기에 오류가 있습니다 n n"; txt + = "오류 설명 :" + err.message + " n n"; txt += "확인을 클릭하여 계속 n n"; 경고 (txt) } } </script> </body> </html>
던지기
진술을 통해 사용자 지정 오류를 만들 수 있습니다. 올바른 기술 용어는 다음과 같습니다. 예외 생성 또는 던지기. 시도 앤 캐치와 함께 Throw를 사용하는 경우 프로그램 흐름을 제어하고 사용자 정의 오류 메시지를 생성 할 수 있습니다.
<!DOCTYPE HTML> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p> 5-10 </p> 사이의 숫자를 입력하십시오 <label for = "one"> </label> <input id = "one"type = "text"> <버튼 유형 = "버튼"onclick = "myfunc ()"> 클릭 </button> <p id = "message"> here </p> <스크립트> 함수 myfunc () { 메시지를 보내십시오. X를하자; message = document.getElementById ( "메시지"); message.innerhtml = ""; x = document.getElementById ( "One"). 값; 노력하다 { if (x === "") 던지기 "값은 비어 있습니다"; if (isnan (x)) "숫자가 아님"을 던지십시오. x = 숫자 (x); if (x <5) "너무 작게"던지십시오. if (x> 10) "너무 큰"던지십시오. } 잡기(오류) { message.innerhtml = "error" + error; } } </script> </body> </html>
JavaScript 함수를 호출하는 4 가지 방법이 있습니다. 일반적으로 JavaScript에서는 기능이 실행될 때 현재 객체를 가리 킵니다.
호출 1 : 함수로 호출
한
기능 myfunc (a, b) { a * b를 반환합니다. }
myfunc
(1,
2);
a * b를 반환합니다. }Window.myfunc (1,
2
)
;
<html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p> 메소드라고 불리는 기능 </p> <p id = "one"> here </p> <스크립트> myObject = { FirstName : "Bill", 마지막 이름 : "게이츠", fullName : function () { 이 this.firstname + "" + this.lastname; } }; document.getElementById ( "one"). innerHtml = myObject.fullName (); </script> </body> </html>
전화 3 : 생성자를 사용하여 함수를 호출하십시오
<! doctype html> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p>이 예에서 MyFunc ()는 함수의 생성자입니다 </p> <p id = "one"> </p> <스크립트> 함수 myfunc (argone, argtwo) { this.name = argone; this.number = argtwo; } x = new myfunc ( "Hello", 123); document.getElementById ( "One"). innerHtml = x.name; </script> </body> </html>
호출 4 : 함수를 함수로 호출
<! doctype html> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p> 함수는 함수로서 함수 </p> <p id = "one"> here </p> <스크립트> Obj, 배열을하자; 함수 myfunc (a, b) { a * b를 반환합니다. } 배열 = [5, 6]; obj = myfunc.apply (obj, array); document.getElementById ( "One"). innerHtml = obj; </script> </body> </html>
내장 함수
실제로 JavaScript에서 모든 함수는 상위 레벨의 범위에 액세스 할 수 있습니다. JavaScript는 중첩 된 기능을 지원하며 중첩 함수는 상위 레벨의 함수 변수에 액세스 할 수 있습니다. 인라인 함수 plus ()는 부모 함수의 카운터 변수에 액세스 할 수 있습니다 :
<! doctype html> <html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p> 인라인 함수 </p> <p id = "one"> here </p> <스크립트> document.getElementById ( "one"). innerHtml = add (); 함수 추가() { 카운터 = 0을하자; 함수 plus () { 카운터 += 1; } 을 더한(); 반환 카운터; } </script> </body> </html>
클로저
기능의 자체 발전을 Bibao<! doctype html>
이라고합니다
.<html lang = "zh-cn"> <머리> <meta http-equiv = "content-type"charset = "utf-8"> <meta http-equiv = "x-ua 호환"컨텐츠 = "ie = edge"> <title>제목</title> </head> <본문> <p> 지역 카운터 </p> <버튼 유형 = "버튼"onclick = "myfunc ()"> 카운터 </button> <p id = "one"> here </p> <스크립트> add = (function () { 카운터 = 0을하자; return function () { 반환 카운터 += 1; } })(); 함수 myfunc () { document.getElementById ( "one"). innerHtml = add (); } </script> </body> </html>