English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaScript 매일 공부해야 할 기본 지식

기본 개념 

JavaScript는 해석형 언어로, 브라우저가 해석기 역할을 합니다. JavaScript가 실행될 때, 동일한 범위 내에서는 먼저 해석한 후 실행합니다. 해석할 때는 function과 var 이 두 키워드로 정의된 변수를 컴파일하고, 컴파일이 완료되면 상단에서 하단으로 실행하며 변수에 값을 할당합니다. 

대소문자 구분 

ECMASCript에서는 모든 것이(변수, 함수 이름, 연산자 포함) 대소문자를 구분합니다. 

1. 변수 

변수는 처음 사용될 때부터 메모리에 설정되어 스크립트에서 나중에 참조하기 쉽습니다. 변수 사용 전에 선언을 수행합니다. var 키워드를 사용하여 변수 선언이 가능합니다.

var count, amount, level; // 단일 var 키워드로 선언된 여러 선언 

변수 이름 

변수 이름에는 전역 변수, 지역 변수, 클래스 변수, 함수 매개변수 등이 포함되며, 모두 이 분류에 속합니다. 

변수 이름은 타입 프리픽스로命名됩니다+의미 있는 단어로 구성되며, 카멜케이스 명명법을 사용하여 변수와 함수의 가독성을 높입니다. 예를 들어: sUserName, nCount.
프리كس 규범:
모든 로컬 변수는 타입 프리كس를 가지고 있어야 하며, 타입에 따라 구분할 수 있습니다:
s: 문자열을 나타냅니다. 예를 들어: sName, sHtml;
n: 숫자를 나타냅니다. 예를 들어: nPage, nTotal;
b: 논리를 나타냅니다. 예를 들어: bChecked, bHasLogin;
a: 배열을 나타냅니다. 예를 들어: aList, aGroup;
r: 정규 표현식을 나타냅니다. 예를 들어: rDomain, rEmail;
f: 함수를 나타냅니다. 예를 들어: fGetHtml, fInit;
o: 다루지 않은 다른 객체를 나타냅니다. 예를 들어: oButton, oDate;
g: 전역 변수를 나타냅니다. 예를 들어: gUserName, gLoginTime;

JScript는 대소문자를 구분하는 언어입니다. 합법적인 변수 이름을 만들기 위해 다음과 같은 규칙을 따르십시오: 

첫 번째 문자는 숫자일 수 없습니다. 

다음과 같은 문자와 숫자 및 언더스코어를 추가할 수 있지만, 공백은 추가할 수 없습니다. 변수 이름은 결코 보존된 단어일 수 없습니다.

JavaScript는 약한 타입 언어로, JavaScript는 초과된 공백을 무시합니다. 스크립트의 가독성을 높이기 위해 공백을 추가할 수 있습니다. 

var는 JavaScript의 보존된 단어로, 다음이 변수 설명임을 나타냅니다. 변수 이름은 사용자 정의된 식별자이며, 변수는 쉼표로 분리됩니다. 

변수를 선언했지만 값을 할당하지 않았다면, 해당 변수는 존재하며, 그 값은 Jscript 값 undefined입니다.

강제 타입 변환 

Jscript에서는 다양한 유형의 값을 연산할 수 있으며, JScript 인터프리터가 예외를 발생시키지 않도록 해야 합니다. 그 대신, JScript 인터프리터는 데이터 유형 중 하나를 다른 데이터 유형으로 자동으로 변환(강제 변환)하여 연산을 수행합니다. 예를 들어:

 연산자: 연산자, 결과

숫자와 문자열을 더하면 숫자 값을 문자열로 강제 변환합니다.
보리얼 값과 문자열을 더하면 보리얼 값을 문자열로 강제 변환합니다.
숫자와 보리얼 값을 더하면 보리얼 값을 숫자로 강제 변환합니다.

문자열을 명시적으로 정수로 변환하려면 parseInt 메서드를 사용하십시오. 문자열을 명시적으로 숫자로 변환하려면 parseFloat 메서드를 사용하십시오. 

JavaScript 변수의 생존 기간: 함수 내에서 변수를 선언하면 해당 함수에서만 접근할 수 있습니다. 함수를 탈출하면 해당 변수가 취소됩니다. 이러한 변수는 로컬 변수라고 합니다. 다른 함수에서 이름이 같은 로컬 변수를 사용할 수 있습니다. 이는 변수를 선언한 함수만이 각 변수를 인식할 수 있기 때문입니다. 

함수 외에 변수를 선언하면 페이지 상의 모든 함수가 이 변수에 접근할 수 있습니다. 이 변수의 생명 주기는 선언된 후부터 시작되고, 페이지가 닫혀질 때까지 지속됩니다. 

js 변수 사고 방식 도표

 

2.js 데이터 타입 

jscript에는 세 가지가 있습니다->주요 데이터 타입, 두 가지->복합 데이터 타입과 두 가지->특수 데이터 타입. 

주요(기본) 데이터 타입
문자열
수치
불리언

복합(참조) 데이터 타입
 객체
배열

특수 데이터 타입
Null

`Undefined`

문자열 데이터 타입: 문자열 데이터 타입은 JScript에서의 텍스트를 나타냅니다. js에서는, 두 개의 따옴표(”"”)와 단 따옴표(”) 모두 문자열을 나타낼 수 있지만, 차이가 거의 없기 때문에, 문자열을 나타내는 데는 주로 두 개의 따옴표(“”)를 사용합니다. 

문자열 값은 Unicode 문자(알파벳, 숫자, 기호)의 연속입니다. 

Unicode는 무엇인가요? 

Unicode는 각 문자에 독립적인数值를 제공하며, 플랫폼이나 프로그램이나 언어와 관계없이 모든 문자를 처리할 수 있도록 개발되었습니다. Unicode는 전 세계에 존재하는 모든 문자를 처리하기 위해 일관된编码을 제공하기 위해 개발되었습니다. 

数值 데이터 타입 

이해해야 할 것은 JScript 내부에서 모든 수치를 부동소수점 값으로 표현한다는 것입니다. 따라서 Jscript에서 정수와 부동소수점 값은 차이가 없습니다. 

Boolean 데이터 타입 

불리언(논리)은 두 가지 값만 가질 수 있습니다: true 또는 false. 

js 배열과 객체 

자세히 보기 위해 이 기사를 참조하세요->javascript 학습 요약 — — 배열과 객체 부분 

Null 데이터 타입: 변수의 내용을 지우기 위해 null 값을 할당할 수 있습니다. 

Jscript에서 typeof 연산자는 null 값을 Object 타입으로 보고하지 않으며, null 타입으로 보고합니다.

 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
 <title></title>
 <script type="text"/javascript"> 
   alert(typeof null);
 </script>
</head>
<body>
</body>
</html> 

null은 존재하지 않는 객체를 나타내며, 함수가 존재하지 않는 객체를 반환하려고 시도할 때 사용됩니다. 

Undefined 데이터 타입: 

이러한 경우 undefined 값을 반환합니다:
객체 속성이 존재하지 않을 때
변수를 선언했지만 값을 할당하지 않았을 때

null과 undefined의 차이

alert(typeof undefined); //output "undefined" 
alert(typeof null); //output "object" 
alert(null == undefined); //output "true" 

ECMAScript는 undefined가 null에서 파생되었다고 생각하며, 따라서 두 가지를 동일하게 정의합니다.

alert(null === undefined); //output "false" 
alert(typeof null == typeof undefined); //output "false" 

null과 undefined의 유형은 다르기 때문에 "false"를 출력합니다. 而===는 절대等于를 의미하며, 여기서 null === undefined은 "false"를 출력합니다. 

또한, 중요한 데이터 유형 중 하나인 참조 데이터 유형을 소개합니다. 

참조 데이터 유형 

JavaScript의 참조 데이터 유형은 힙 메모리에 저장된 객체이며, JavaScript는 힙 메모리 공간의 위치와 힙 메모리 공간을 직접 접근할 수 없습니다. 대신 스택 메모리에 저장된 객체의 참조 주소를 통해 접근할 수 있습니다. 따라서 참조 유형 데이터는 스택 메모리에 저장된 것은 실제로 힙 메모리에 저장된 객체의 참조 주소이며, 이 참조 주소를 통해 힙 메모리에 저장된 객체를 빠르게 찾을 수 있습니다. 

이제 이 참조 데이터 유형 할당 과정을 보여드리겠습니다.

 

자연스럽게 obj2name 속성을 추가하는 것은 실제로 힙 메모리에 저장된 객체에 name 속성을 추가하는 것입니다. 따라서 obj2와 obj1스택 메모리에 저장된 것은 힙 메모리 객체의 참조 주소일 뿐, 복사된 것은 맞지만, 가리키는 객체는 동일합니다. 따라서 obj를 변경하면2obj를 일으켰습니다.1의 변경입니다. 

기본 유형 값은 스택 메모리에 저장된 간단한 데이터 섹션을 의미하며, 이 값은 메모리의 하나의 위치에 완전히 저장됩니다.
 참조 유형 값은 힙 메모리에 저장된 객체를 의미하며, 변수에 저장된 것은 실제로 포인터일 뿐, 이 포인터는 메모리 중 다른 위치를 가리키며, 이 위치에 객체가 저장됩니다. 

간단히 말해, 힙 메모리는 참조 값을 저장하고, 스택 메모리는 고정된 유형의 값을 저장합니다.

 

ECMAScript에서 변수는 두 가지 유형의 값을 가질 수 있습니다. 즉, 원시 값과 참조 값입니다. 

스택(stack)에 저장된 간단한 데이터 섹션을 저장하고 있으며, 이는 값이 변수 접근 위치에 직접 저장된다는 것입니다. 참조 값은 힙(heap)에 저장된 객체를 의미하며, 변수에 저장된 값은 포인터(point)입니다. 이 포인터는 객체가 저장된 메모리 위치를 가리킵니다.

 <script type="text"/javascript">
var box = new Object(); //참조 타입을 생성합니다
var box = "lee";  //기본 타입 값은 문자열입니다
box.age = 23;  //기본 타입 값에 속성을 추가하는 것은 매우 이상합니다. 왜냐하면 속성을 추가할 수 있는 것은 객체 만이기 때문입니다.
alert(box.age); //참조 타입이 아니므로 출력할 수 없습니다;
</script> 

3.JScript의 연산자 

우선순위:연산자의 계산 순서를 의미합니다. 일반적으로 어떤 부분을 먼저 계산할지를 의미합니다.
결합성:동일한 우선순위 연산자의 계산 순서는, 일반적으로 왼쪽에서 오른쪽으로 계산하거나 오른쪽에서 왼쪽으로 계산하는 것을 의미합니다. 

데이터 타입 변환과 기본 패키지 타입 

String()은 문자열 타입으로 변환합니다
Number()은 숫자 타입으로 변환합니다
Boolean()은 부울 타입으로 변환합니다 

parseInt:문자열을 정수로 변환합니다. 문자열의 시작 부분에서 시작하여 첫 번째 비정수 위치에서 중단하고, 전에 읽은 모든 정수를 반환합니다. 문자열이 정수로 시작하지 않으면 NaN을 반환합니다. 예를 들어: parseInt("150 hi”)이 반환하는 값은:150, parseInt(“hi”)이 반환하는 값은:NaN.
 parseFloat:문자열을 부동소수점 수로 변환합니다. 문자열의 시작 부분에서 시작하여 첫 번째 비정수 위치에서 중단하고, 전에 읽은 모든 정수를 반환합니다. 문자열이 정수로 시작하지 않으면 NaN을 반환합니다. 예를 들어: parseFloat("15.5 hi")이 반환하는 값은:15.5parseFloat("hi", 15.5")이 반환하는 값은 NaN입니다.

 eval:문자열을 JavaScript 표현식으로 계산하고 실행 결과를 반환합니다. 결과가 없으면 undefined를 반환합니다.
기본 패키지 타입 

기본 타입 값이 읽혀질 때마다, 배경에서 해당 기본 패키지 타입의 객체가 생성되어 이를 통해 데이터를操作할 수 있는 메서드를 호출할 수 있습니다. 기본 패키지 타입은 Boolean, Number, String을 포함합니다

 var box = 'trigkit',4'; //문자열 literal
box.name = 'mike';  //비유효한 속성
box.age = function () { //비유효한 메서드
  return 22;
};
//new 연산자 표기법
var box = new String('trigkit',4');//new 연산자
box.name = 'mike';  //유효한 속성
box.age = function () { //유효한 메서드
  return 22;
}; 

String 타입은 세 가지 속성과 많은 내장 메서드를 포함하고 있습니다
 속성   설명
length : 문자열의 문자 길이를 반환합니다
Constructor: String 객체를 생성하는 함수를 반환
prototype: 문자열 정의에 추가할 속성과 메서드를 확장

4.js 흐름 제어 

js 흐름 제어 문에 대해, 여기서는 몇 가지 이해하기 어려운 것만 설명합니다. 다른 것들은 설명하지 않습니다. 나중에脑筋图를 추가합니다. 

1.for…in 문은 객체의 각 요소나 배열의 각 요소에 대해 하나나 여러 개의 문장을 실행합니다.
 for (variable in [object | array])
statements

매개변수: 
variable: 필수 사항. 객체의 어떤 속성이나 배열의 어떤 요소인지 되는 변수.
 object, array: 선택 사항. 그 위를 순회하려는 객체나 배열.
 statement: 선택 사항. object의 각 속성이나 array의 각 요소에 대해 실행되는 하나나 여러 개의 문장. 복합 문장이 될 수 있습니다. 

조건 제어 문(예: if 문)이 여러 명령어를 실행하는 경우에만 코드 블록(좌 괄호 { 시작, 우 괄호 } 끝)이 요구되지만, 최선의 방법은 항상 코드 블록을 사용하는 것입니다.

 if(args)
  alert(args);//오류가 쉽게 발생
if(args){
  alert(args);//추천
}

 5.js 함수 

함수는 이벤트를 통해 동작하거나 호출될 때 실행되는 재사용 가능한 코드 블록입니다. 

Jscript는 두 가지 함수를 지원합니다: 하나는 언어 내부의 함수이고, 다른 하나는 사용자가 생성한 함수입니다.
JavaScript 함수는 매개변수가 없을 수 있으며(하지만 매개변수를 포함한 소괄호는 생략할 수 없습니다),함수에 매개변수를 전달하여 함수에서 사용할 수 있습니다. 

함수에 대한 더 많은 정보는 다른 글을 참조하세요: javascript 학습 대 요약(4) function 함수 부분 

객체의 구성
메서드 - 함수: 과정, 동적
속성 - 변수: 상태, 정적

마지막으로, 선배가 요약한脑筋图를 추가합니다:

이 글의 모든 내용이 끝입니다. 여러분의 학습에 도움이 되길 바랍니다. 또한, 나의 노래教程에 많은 지원을 부탁드립니다.

당신이 좋아할 만한 것