1. 선언 및 정의
변수 유형: var, 정의, 블록 범위(scope) 지역 변수를 정의하고, 읽기 전용 상수를 정의합니다.
변수 형식: 문자로 시작하고 밑줄 "_" 또는 $ 기호, 대소문자를 구분합니다.
변수 할당: 선언은 했지만 할당되지 않은 변수는 사용 시 정의되지 않은 값을 갖습니다. 선언되지 않은 변수를 직접 사용하면 예외가 발생합니다.
계산에 할당되지 않은 변수: 결과는 NaN입니다. 예:
var x, y = 1; console.log(x + y); //结果为NaN,因为x没有赋值。
2. Scope
변수 범위: ES6 이전에는 블록 선언 범위가 없었고 변수는 함수 블록 내에서 또는 전역적으로 작동했습니다. 다음 코드에서 볼 수 있듯이 입력된 x는 5입니다.
if (true) { var x = 5; } console.log(x); // 5
ES6 변수 범위: ES6은 블록 범위를 지원하지만 변수를 선언하려면 let을 사용해야 합니다. 다음 코드 출력에서는 예외가 발생합니다.
f (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined1234
변수 부동: 메소드나 전역 코드에서 변수가 선언되기 전에 변수를 사용하면 예외가 발생하지 않지만 정의되지 않은 값이 반환됩니다. 이는 JavaScript가 변수 선언을 함수 또는 전역 앞에 자동으로 띄우기 때문입니다. 예를 들어 다음 코드는
/** * 全局变量上浮 */ console.log(x === undefined); // logs "true" var x = 3; /** * 方法变量上浮 */ var myvar = "my value"; // 打印变量myvar结果为:undefined (function() { console.log(myvar); // undefined var myvar = "local value"; })();
위 코드와 다음 코드는 동일합니다.
/** * 全局变量上浮 */ var x; console.log(x === undefined); // logs "true" x = 3; /** * 方法变量上浮 */ var myvar = "my value"; (function() { var myvar; console.log(myvar); // undefined myvar = "local value"; })();
전역 변수: 페이지에서 전역 개체는 window이므로 전역 변수에 액세스할 수 있습니다. 창을 통해. 예:
version = "1.0.0"; console.log(window.version); //输出1.0.0
1. 데이터 유형
6가지 기본 유형: 부울(true 또는 false), null (js는 대소문자를 구분하며 Null 및 NULL과 다릅니다.), 정의되지 않음, 숫자, 문자열, 기호(고유하고 불변으로 표시됨)
객체 유형: 객체.
객체와 함수: 객체는 값의 컨테이너 역할을 하고, 함수는 응용 프로시저 역할을 합니다.
2. 데이터 변환
기능: 문자열을 숫자로 변환하는 데는parseInt 및 parseFloat 메소드를 사용할 수 있습니다.
parseInt: 함수 시그니처는parseInt(string, radix), radix는 10진수나 16진수 등 디지털 진수를 나타내는 2~36 사이의 숫자입니다. 반환 결과는 정수 또는 NaN입니다. 예를 들어 아래 출력 결과는 모두 15입니다.
parseInt("0xF", 16); parseInt("F", 16); parseInt("17", 8); parseInt(021, 8); parseInt("015", 10); parseInt(15.99, 10); arseInt("15,123", 10); parseInt("FXX123", 16); parseInt("1111", 2); parseInt("15*3", 10); parseInt("15e2", 10); parseInt("15px", 10);
parseFloat: 함수 서명은parseFloat(string)이고 반환 결과는 숫자 또는 NaN입니다. 예:
parseFloat("3.14"); //返回数字 parseFloat("314e-2"); //返回数字 parseFloat("more non-digit characters"); //返回NaN
3. 데이터 유형 텍스트화
텍스트화 유형: 배열, 부울, 부동 소수점, 정수, 객체, RegExp, 문자열.
배열의 추가 쉼표: ["Lion", , "Angel"], 길이는 3이고 [1]의 값은 undefiend입니다. ['home', , 'school', ], 마지막 쉼표는 생략되어 길이는 3입니다. [ , '집', , '학교'], 길이는 4입니다. ['집', , '학교', , ], 길이는 4입니다.
정수 정수: 정수는 10진수, 8진수, 16진수, 2진수로 표현할 수 있습니다. 예:
0, 117 and -345 //十进制 015, 0001 and -0o77 //八进制 0x1123, 0x00111 and -0xF1A7 //十六进制 0b11, 0b0011 and -0b11 1234 //二进制
부동 소수점 수: [(+|-)][digits][.digits][(E|e)[(+|-)]digits]. 예:
3.1415926,-.123456789,-3.1E+12(3100000000000),.1e-23(1e-24)
객체: 객체의 속성 획득 값은 ".property" 또는 "[속성 이름]"을 통해 얻을 수 있습니다. 예:
var car = { manyCars: {a: "Saab", "b": "Jeep"}, 7: "Mazda" }; console.log(car.manyCars.b); // Jeep console.log(car[7]); // Mazda
객체 속성: 속성 이름은 임의의 문자열이거나 빈 문자열일 수 있습니다. 잘못된 이름은 따옴표로 묶을 수 있습니다. 복합명은 .을 통해서는 얻을 수 없고, []를 통해서는 얻을 수 있다. 예:
var unusualPropertyNames = { "": "An empty string", "!": "Bang!" } console.log(unusualPropertyNames.""); // SyntaxError: Unexpected string console.log(unusualPropertyNames[""]); // An empty string console.log(unusualPropertyNames.!); // SyntaxError: Unexpected token ! console.log(unusualPropertyNames["!"]); // Bang!
이스케이프 문자: 다음 문자열 출력에는 이스케이프 기호 """가 사용되기 때문에 큰따옴표가 포함되어 있습니다.
var quote = "He read \"The Cremation of Sam McGee\" by R.W. Service."; console.log(quote); //输出:He read "The Cremation of Sam McGee" by R.W. Service.1。
문자열 개행 방법: 문자열에 직접 ""를 추가합니다. 다음 코드와 같이 줄 끝:
var str = "this string \ is broken \ across multiple\ lines." console.log(str); // this string is broken across multiplelines.
1. 블록 표현
기능: if, for, while과 같은 블록 표현식은 일반적으로 사용됩니다. 다음 코드에서 {x++;}는 블록 선언입니다.
while (x < 10) { x++; }
ES6 이전에는 블록 범위가 없었습니다. 에 정의된 변수는 실제로 메소드나 전역에 포함되어 있으며, 변수의 영향력이 블록의 범위를 초과합니다. 예를 들어 다음 코드의 최종 실행 결과는 2입니다. > ES6 이후에는 블록 범위가 있습니다. ES6에서는 블록 범위 선언 var를 let으로 변경할 수 있으므로 변수는 블록 범위만 범위 지정합니다.
2. 논리적 판단false로 판단되는 특수값: false, undefine, null, 0, NaN, "" 단순 부울 및 객체 부울 유형: 단순 부울 유형의 false 및 true 및 false 및 객체 부울 다음 예와 같이 true와 같지 않음의 차이가 있습니다.
var x = 1; { var x = 2; } console.log(x); // outputs 2
No4. 예외 처리
1. >
예외 발생 구문: 예외 발생 유형은 아래와 같습니다. 사용자 정의 예외:var b = new Boolean(false); if (b) // 返回true if (b == true) // 返回false
2. 구문
사용 }catch(e){}finally{} 구문은 C# 구문과 유사합니다. finally 반환 값: finally 반환 문을 추가하면 전체 try.catch에 관계없이 반환 값이 반환됩니다. 다음과 같이 모두 최종적으로 반품되었습니다.function f() { try { console.log(0); throw "bogus"; } catch(e) { console.log(1); return true; // 返回语句被暂停,直到finally执行完成 console.log(2); // 不会执行的代码 } finally { console.log(3); return false; //覆盖try.catch的返回 console.log(4); //不会执行的代码 } // "return false" is executed now console.log(5); // not reachable } f(); // 输出 0, 1, 3; 返回 false
finally吞并异常:如果finally有return并且catch中有throw异常。throw的异常不会被捕获,因为已经被finally的return覆盖了。如下代码所示:
function f() { try { throw "bogus"; } catch(e) { console.log('caught inner "bogus"'); throw e; // throw语句被暂停,直到finally执行完成 } finally { return false; // 覆盖try.catch中的throw语句 } // 已经执行了"return false" } try { f(); } catch(e) { //这里不会被执行,因为catch中的throw已经被finally中的return语句覆盖了 console.log('caught outer "bogus"'); } // 输出 // caught inner "bogus"
系统Error对象:我们可以直接使用Error{name, message}对象,例如:throw (new Error('The message'));
以上就是面试开发常用的 JavaScript 知识点总结的内容,更多相关内容请关注PHP中文网(www.php.cn)!