>  기사  >  웹 프론트엔드  >  JavaScript의 단순 데이터 유형과 복합 데이터 유형의 비교 예에 대한 자세한 설명

JavaScript의 단순 데이터 유형과 복합 데이터 유형의 비교 예에 대한 자세한 설명

伊谢尔伦
伊谢尔伦원래의
2017-07-21 13:58:353536검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.