JavaScript의 데이터 유형
단순(기본) 데이터 유형: 숫자, 문자열, 부울, 정의되지 않음, Null
복잡한(참조) 데이터 유형: 객체, 배열, 날짜, 함수 등
간단한 데이터 유형은 다음과 같습니다. 아래에 소개된(기본) 데이터 유형과 복합(참조) 데이터 유형의 차이점:
단순 데이터 유형: 스택에 직접 값을 저장
복잡한 데이터 유형: 스택에 참조 저장
이해한 후 위의 두 가지 데이터 유형 저장 그런 다음 다음 연습을 수행하여 두 데이터 유형의 차이점을 구별할 수 있습니다.
var a =10; var b = a; //问:当改变a的值后,b的值是否发生改变 a=20; console.log(b); // 10
var s1 = new Object(); var s2 = s1; //问:改变s1的属性后,s2相同的属性是否改变 s1.name = "mh"; console.log(s2.name); //mh
function f2(arr) { arr = [9,8,7,6,5];//产生新的对象 arr[0]=-100; } var array = [1,2,4,7,5]; f2(array); console.log(array[0]);// 1
JavaScript의 변수 승격, 함수 선언 및 변수 범위
먼저 다음 인터뷰 질문을 보세요:
var num = 10; fun(); function fun() { console.log(num); var num =20; }
배우기 전에는 10에 직접 대답했을 것입니다. 이제 JavaScript에서 사전 컴파일의 개념을 배우고 있으며 var 키워드의 개념을 알고 있습니다. 위 코드는 다음 코드와 동일하다는 것을 알고 있습니다. :
var num;//全局作用域 遇到var和function 提升 function fun() { var num ; //局部做用户 遇到var 提升 console.log(num); num =20; } num = 10; fun();
다음 질문을 다시 살펴보세요.
//问题:为什么会出现下面的错误? //Uncaught TypeError:fnName is not a function console.log(fnName(1,2)); var fnName = function (a,b) { return a + b; }
위 코드는 다음 코드와 동일합니다.
var fnName; console.log(fnName(1,2)); fnName = function (a,b) { return a + b; }
함수가 등호 오른쪽에 있으므로 var만 승격되는 것을 볼 수 있습니다. 결과적으로 "Uncaught TypeError: fnName은 함수가 아닙니다" 오류가 보고됩니다.
변수의 범위를 이해하려면 다음 코드를 참조하세요.
f1(); console.log(c); console.log(b); console.log(a); function f1() { var a = b = c = 20; console.log(c); console.log(b); console.log(a); }
var a=b=c=20;과 같은 연속 할당의 경우 a만 로컬 범위에서 다시 선언되고, b 및 c 도메인의 기능은 전역 범위입니다. 따라서 전역 범위의 a만 "Uncaught ReferenceError: a가 정의되지 않았습니다"라는 오류를 보고합니다.
위 내용은 JavaScript의 단순 데이터 유형과 복합 데이터 유형의 비교 예에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!