이 기사는 JavaScript 데이터 유형에 대한 자세한 소개를 제공합니다. 이는 특정 참조 가치가 있으므로 도움이 될 수 있습니다.
최근 세 명의 개발자를 인터뷰했는데, 그들 중 누구도 JS의 기본 유형이 무엇인지 명확하게 설명하지 못했습니다. 그리고 그들은 종종 int, float, double 및 기타 데이터 유형과 같은 일부 C 언어 데이터 유형을 실수로 언급합니다.
어떤 언어이든 데이터 유형에 대한 숙련도는 이 언어의 가장 기본적인 지식 포인트입니다.
JS 데이터 유형은 두 가지 범주로 나뉘는데, 하나는 기본 유형이며 여기에는
JS에는 몇 가지 기본 유형만 있습니다. 또한 다른 유형은 객체입니다.
숫자형
JS에는 정수형, 부동소수형, 이중형 값이 없습니다. 모든 값을 숫자형이라고 합니다.
JS는 IEEE754 형식을 사용하여 정수 및 부동 소수점 숫자를 나타냅니다. 일반적으로 정수는 32비트를 차지하고 부동 소수점 숫자는 64비트를 차지합니다. 부동 소수점 숫자는 정수 메모리 공간의 두 배를 차지하기 때문에 js는 저장을 위해 부동 소수점 숫자를 정수로 적절하게 변환합니다.
4.0 === 4 // true
숫자 유형의 크기는 다양합니다.
Number.MAX_VALUE // 1.7976931348623157e+308 Number.MIN_VALUE // 5e-324 Number.MAX_SAFE_INTEGER // 9007199254740991 Number.MIN_SAFE_INTEGER // -9007199254740991
부동 소수점 숫자는 일반적으로 계산 결과가 부정확합니다. 이는 JS 문제가 아니며 모든 언어에 존재합니다.
0.1 + 0.2 === 0.3
을 계산한 결과는 항상 false입니다. 0.1 + 0.2 === 0.3
这个结果永远是false。
要比较浮点数是否相等,可以采用Number.EPSILON
Number.EPSILON
을 사용하면 됩니다. Number.EPSILON은 매우 작은 숫자입니다. 두 부동 소수점 숫자가 Number.EPSILON보다 작은 경우에는 다음과 같습니다. 동등한 것으로 간주됩니다.
Math.abs(0.1 + 0.2 - 0.3) < Number.EPSILON // true숫자형에는 특별한 세 형제가 있습니다
ECMAScript 2016(ed. 7)에서는 최대 길이를 2^53 - 1 요소로 설정했습니다. 이전에는 Firefox에서 최대 길이가 지정되지 않았습니다. , 문자열의 최대 길이는 230 - 2(~1GB)입니다. Firefox 65 이전 버전에서는 최대 길이가 228 - 1(~256MB) --MDNBoolean 부울 값입니다. 매우 간단하며 false와 true라는 두 가지 값만 있습니다. 그러나 많은 사람들은 어떤 값이 거짓으로 변환될 것인지 완전히 대답하지 못합니다. false로 변환될 수 있는 다음 값을 제외하고 나머지는 모두 true입니다.
false '' NaN undefined 0, -0, +0 nullundefine 및 nullundefine은 변수가 정의되었지만 값이 할당되지 않았음을 나타냅니다. null은 변수가 전혀 정의되지 않았음을 의미합니다. 즉, undefined, null 여부와 관계없이 기본적으로는 사용할 수 없는 값입니다. 널 유형에는 특별한 기능이 있습니다. 예를 들어, 이 변수를 가비지 수집 준비가 된 것으로 표시하려는 경우 해당 값을 null로 설정할 수 있습니다. 가장 친숙한 낯선 사람: 객체JS에서 객체가 가장 단순하다고 생각했는데 사실 너무 순진했어요.
// 定义一个对象,so easy var boy = { name: 'wangduanduan' }
var boy = {} Object.defineProperty(boy, 'name', { writable: false, value: 'wdd' }) boy.name = 'ddw' // 设置不会生效,boy.name的值还是wdd개체의 데이터 속성
데이터 속성 | 기본값 | Description |
---|---|---|
configurable | true | 이 속성을 삭제로 삭제할 수 있는지 여부를 나타냅니다. |
열거 가능 | true | 이 속성이 for in 루프를 통해 탐색될 수 있는지 여부를 나타냅니다. |
writable | true | 이 속성이 수정될 수 있는지 여부를 나타냅니다. |
value | undefine | 이 속성의 데이터 값을 나타냅니다. |
var man = { _sex: 1 } Object.defineProperty(man, 'sex', { set: function (v) { this._sex = v === '男' ? 1 : 0 }, get: function () { return this._sex === 1 ? "男" : "女" } }) nam.sex // 男위의 _sex를 sex로 바꾸면 어떻게 될지 생각해 보세요.
// 这样写会有什么问题 var man = { sex: 1 } Object.defineProperty(man, 'sex', { set: function (v) { this.sex = v === '男' ? 1 : 0 }, get: function () { return this.sex === 1 ? "男" : "女" } })이 기사는 여기서 끝났습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 JavaScript Video Tutorial 칼럼을 주목하세요! 🎜
위 내용은 JavaScript 데이터 유형 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!