> 웹 프론트엔드 > JS 튜토리얼 > js 데이터 유형은 무엇입니까? js의 데이터 유형 요약

js 데이터 유형은 무엇입니까? js의 데이터 유형 요약

不言
풀어 주다: 2018-08-07 15:27:11
원래의
3628명이 탐색했습니다.

js의 데이터 유형은 무엇인가요? js의 데이터 유형은 기본 유형과 참조 유형으로 구분됩니다. 그중 js에는 숫자, 문자열, 부울, 정의되지 않음 및 Null의 5가지 기본 데이터 유형이 있습니다. 객체, 함수, 배열 이 기사에서는 모든 사람을 위한 js의 데이터 유형을 요약합니다.

먼저 typeof 연산자를 살펴보겠습니다.

js의 변수는 느슨한 형식이므로 현재 변수의 데이터 유형, 즉 typeof 키워드를 감지하는 방법을 제공합니다.

typeof   123   //Number
typeof   'abc'  //String
typeof    true       //Boolean
typeof    undefined   //Undefined
typeof    null        //Object
typeof    { }           //Object
typeof    [ ]           //Object
typeof    console.log()       //Function
로그인 후 복사

null 유형 typeof 연산자를 수행한 후 null 형식은 null 개체 참조로 처리되므로 결과는 개체입니다.

1. js 기본 데이터 유형

1. 숫자 유형

숫자 유형에는 정수와 부동 소수점 숫자 두 가지 값이 포함됩니다(부동 소수점 숫자 값에는 소수점이 포함되어야 하며, 소수점 이하 한 자리 이상). 매우 크거나 매우 작은 숫자는 과학적(지수) 표기법을 사용하여 쓸 수 있습니다.

NaN: 숫자가 아닌 유형입니다. 특징: ① NaN과 관련된 모든 연산은 NaN을 반환합니다. ② NaN은 그 자체와 동일하지 않습니다.

isNaN() 함수는 인수가 숫자가 아닌 값인지 확인하는 데 사용됩니다.

isNaN(123) //false isNaN("hello") //true

2. 문자열 유형

문자열에는 길이 속성이 있습니다.

문자열 변환: 변환 함수 String(), 모든 데이터 유형에 적용 가능(null, 정의되지 않음은 null 및 정의되지 않음으로 변환됨) toString() 메서드(null, 정의됨에는 toString() 메서드가 없음)

3. 부울 유형

이 유형에는 true와 false의 두 가지 값만 있습니다.

4. 정의되지 않은 유형

에는 정의되지 않은 값이 하나만 있습니다. var를 사용하여 변수를 선언했지만 변수가 초기화되지 않은 경우 변수의 값은 정의되지 않습니다.

5. Null 유형

Null 유형은 위에서 언급한 것처럼 빈 객체 참조로 간주됩니다.

6. 객체 유형

js의 객체는 속성과 메서드의 모음입니다. 여기서는 참조 유형에 대해 설명합니다. 참조 유형은 데이터와 함수를 함께 구성하는 데 사용되는 데이터 구조입니다. 참조 유형은 객체 클래스의 속성과 메서드를 설명하기 때문에 객체 정의라고도 합니다.

2.js 참조 데이터 유형

1. 객체 유형

우리가 보는 대부분의 유형 값은 객체 유형의 인스턴스입니다.

첫 번째 방법은 아래와 같이 new 연산자와 객체 생성자를 사용하는 것입니다.

var person = new Object();
person.name = "Micheal";
person.age = 24;
로그인 후 복사

두 번째 방법은 아래와 같이 객체 리터럴 표기법을 사용하는 것입니다.

var person = {
  name : "Micheal",
  age : 24
};
로그인 후 복사

2. 배열 유형

각. item은 모든 유형의 데이터를 저장하는 데 사용할 수 있습니다. 즉, 배열의 첫 번째 위치를 사용하여 문자열을 저장하고, 두 번째 위치에 값을 저장하고, 세 번째 위치에 객체를 저장할 수 있습니다.... 또한 배열의 크기를 동적으로 조정할 수 있습니다.

배열을 만드는 기본 방법에는 두 가지가 있습니다

첫 번째는 아래와 같이 Array 생성자를 사용하는 것입니다

var colors = new Array("red","blue","yellow");
로그인 후 복사

두 번째는 아래와 같이 배열 리터럴 표기법을 사용하는 것입니다

var colors = ["red","blue","yellow"];
로그인 후 복사

3.

모든 함수는 Function 유형의 인스턴스이며 다른 참조 유형과 동일한 속성 및 메서드를 갖습니다. 함수는 일반적으로 아래와 같이 함수 선언 구문을 사용하여 정의됩니다.

function sum(num1,num2){
  return num1 + num2;
};
로그인 후 복사

이는 함수 표현식을 사용하여 함수를 정의하는 방법과 유사합니다.

var sun = function (){
  return sum1 + sum2;
};
로그인 후 복사

즉, js는 저장방식에 따라 값형(value type)과 참조형(reference type)으로 나누어집니다. 그렇다면 그들의 계산에는 어떤 차이가 있습니까?

3. 값 유형과 참조 유형의 차이점

1. 값 유형

은 고정된 공간을 차지하고 스택에 저장됩니다. (메서드가 실행될 때 각 메소드는 자체 메모리를 생성합니다. 스택, 이 메소드에 정의된 변수는 이 스택 메모리에 하나씩 배치됩니다. 메소드 실행이 끝나면 이 메소드의 메모리 스택은 자연스럽게 소멸됩니다. 따라서 메소드에 정의된 모든 변수는 스택에 배치됩니다. 스택은 메모리에 저장되며, 기본 변수의 값은 스택에 저장되고, 스택에 저장된 참조 변수는 힙의 배열이나 객체 주소를 가리킵니다. 참조가 수정되는 이유. 유형은 항상 이 주소를 가리키는 다른 참조 변수에 영향을 미칩니다. )

저장되고 복사되는 것은 값 자체입니다.

typeof를 사용하여 데이터 유형을 감지하세요

기본 유형 데이터는 값 유형입니다

2. 참조 유형

占用空间不固定,保存在堆中(当我们在程序中创建一个对象时,这个对象将被保存到运行时数据区中,以便反复利用(因为对象的创建成本通常较大),这个运行时数据区就是堆内存。堆内存中的对象不会随方法的结束而销毁,即使方法结束后,这个对象还可能被另一个引用变量所引用(方法的参数传递时很常见),则这个对象依然不会被销毁,只有当一个对象没有任何引用变量引用它时,系统的垃圾回收机制才会在核实的时候回收它。)

保存与复制的是指向对象的一个指针

使用instanceof检测数据类型

使用new()方法构造出的对象是引用型

计算区别:

题目1:

var a = 100;
    var b = a;
      a = 200;
    console.log (b);
로그인 후 복사

题目2:

var a = {age : 20};
    var b = a;
    b.age = 21;
    console.log (a.age);
로그인 후 복사

题目1的答案是 100,题目2的答案是21,

题目1是简单的值类型,在从一个变量向另一个变量赋值基本类型时,会在该变量上创建一个新值,然后再把该值复制到为新变量分配的位置上。

此时,a中保存的值为 100 ,当使用 a 来初始化 b 时,b 中保存的值也为100,但b中的100与a中的是完全独立的,该值只是a中的值的一个副本,此后,这两个变量可以参加任何操作而相互不受影响。也就是说基本类型在赋值操作后,两个变量是相互不受影响的。

题目2是引用类型,当从一个变量向另一个变量赋值引用类型的值时,同样也会将存储在变量中的对象的值复制一份放到为新变量分配的空间中。

这时保存在变量中的是对象在堆内存中的地址,所以,与简单赋值不同,这个值的副本实际上是一个指针,而这个指针指向存储在堆内存的一个对象。那么赋值操作后,
两个变量都保存了同一个对象地址,则这两个变量指向了同一个对象。因此,改变其中任何一个变量,都会相互影响。

因此,引用类型的赋值其实是对象保存在栈区地址指针的赋值,因此两个变量指向同一个对象,任何的操作都会相互影响。

相关文章推荐:

js的数据类型及JS基本数据类型具体有哪几种

JS数据类型怎样转换

JS的数据类型+引用类型深浅拷贝与内存分配问题


위 내용은 js 데이터 유형은 무엇입니까? js의 데이터 유형 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿