English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
JavaScript는 현재 산업에서 가장 인기 있는 프로그래밍 언어 중 하나입니다. 이 언어를 배우려면 다음과 같은 오류를 피하십시오.
if 문에서 불가피하게 대입 연산자 (=) 대신 비교 연산자 (==)를 사용하면 JavaScript 프로그램이 예상치 못한 결과를 일으킬 수 있습니다.
num이 다르면20이면 이 if 문은 false를 반환합니다:
var num = 0; if (num == 20)테스트를 보세요‹/›
이 if 문은 true를 반환합니다:20이 true입니다:
var num = 0; if (num = 20)테스트를 보세요‹/›
할당은 항상 할당된 값을 반환합니다.
JavaScript를 처음 사용하기 시작할 때, 이는 가장 일반적인 오류 중 하나입니다.
일반 비교에서 데이터 타입은 중요하지 않습니다. 이 if 문이 true를 반환하면:
var a = 20; var b = "20"; if (a == b)테스트를 보세요‹/›
정확한 비교에서 데이터 타입은 정말 중요합니다. 이 if 문은 false를 반환합니다:
var a = 20; var b = "20"; if (a === b)테스트를 보세요‹/›
(a == b)과 (a === b)의 차이는:
== a가 b와 같다면 true를 반환합니다.
=== a가 b와 같고, 그들이 동일한 타입이라면같은 타입true를 반환합니다.
일반적으로, 항상 === 또는 strict equality operator 또는 identical operator라고도 하는 것을 사용해야 합니다。
이전 장에서 알 수 있듯이,+연산자는 더하기와 연결에 사용됩니다。
또한는 추가에 관한 것입니다숫자。
연결는 추가에 관한 것입니다문자열의。
따라서, 숫자를 숫자로 추가하는 것과 숫자를 문자열로 추가하는 것은 다른 결과를 낳습니다:
var a = 10; var b = 5; var c = a + b; // c = 15 var a = 10; var b = "5"; var c = a + b; // c = "105"테스트를 보세요‹/›
JavaScript의 모든 숫자는 다음과 같이 저장됩니다64비트 부동소수점 (Floats).
모든 프로그래밍 언어(JavaScript 포함)는 정확한 부동소수점 값에 어려움을 겪습니다:
var a = 0.1; var b = 0.2; var c = a + b; // c의 결과는 0이 될 수 없습니다.3테스트를 보세요‹/›
위의 문제를 해결하기 위해 곱셈과 나눗셈이 도움이 됩니다:
var c = (a * 10 + b * 10) / 10; // c = 0.3테스트를 보세요‹/›
JavaScript는 문장을 두 줄로 나눌 수 있습니다:
var str = "w3codebox Tutorial";테스트를 보세요‹/›
하지만, 문자열 중간의 문장을 끊는 것은 작동하지 않습니다:
var str = "w3codebox Tutorial";테스트를 보세요‹/›
문자열 내에서 문장을 끊는 경우에는 반드시 "반대quotes"(탈출 문자)를 사용해야 합니다:
var str = "w3codebox \ Tutorial";테스트를 보세요‹/›
다른 해결책은 다음과 같습니다template literal(반대quotes``)문자열. 이는 긴 문자열을 응축할 필요가 없습니다:
var str = `Air Pollution is introduction of chemicals to the atmosphere. 그것은 환경 균형을 해치고 원인을 일으킵니다 several diseases.`;테스트를 보세요‹/›
구분자 위치가 잘못되었기 때문에, num의 값이 어떻게 되었든 다음 코드가 실행됩니다:
if (num === 45); { // code block }테스트를 보세요‹/›
객체와 배열 정의의 끝에 있는 쉼표는 ECMAScript 5중에서는 합법적입니다.
let fruits = ["Apple", "Mango", "Banana", "Orange",];//배열 let user = {firstName:"Vishal", lastName:"Choudhary", age:22,};//객체
그러나, 배열의 끝에 쉼표를 추가하면 Internet Explorer 8고장 나릅니다。
JSON은 트레일링 콤마를 허용하지 않습니다。
JavaScript는 각 코드 블록에 새로운 범위를 생성하지 않습니다。
대부분의 프로그래밍 언어에서 적용되지만 JavaScript에서는 적용되지 않습니다。
for (var i = 0; i < 10; i++) { // some code } document.write(i); // 이 출력은 무엇이 될까요?테스트를 보세요‹/›
사용let키워드는 각 코드 블록에 새로운 범위를 생성합니다:
for (let i = 0; i < 10; i++) { // some code } document.write(i); // 이 출력은 무엇이 될까요?테스트를 보세요‹/›
undefined값은 변수에 값을 할당하지 않았거나 변수를 선언하지 않았음을 나타냅니다.
null값은 특별히 객체 값이 없는 것을 의미합니다.
이렇게 되면 빈 객체를 테스트하는 것이 어려워집니다.
형식을 테스트하여undefined،객체가 존재하는지 테스트하는 방법은:
if (typeof myObj === "undefined")테스트를 보세요‹/›
하지만 객체가 있는지 테스트할 수 없습니다:null،이 경우 객체가undefined,이렇게 되면 오류가 발생합니다:
if (myObj === null)테스트를 보세요‹/›
이 문제를 해결하려면, 객체가 아닌지 테스트해야 합니다:undefined,그리고null:
if (typeof myObj !== "undefined" && myObj !== null)테스트를 보세요‹/›