> 웹 프론트엔드 > 프런트엔드 Q&A > 자바스크립트에서 null은 무엇인가요?

자바스크립트에서 null은 무엇인가요?

藏色散人
풀어 주다: 2023-01-07 11:46:20
원래의
9286명이 탐색했습니다.

javascript의 null은 JS에서 제공하는 특수 값으로, javascript에서는 "missingObject === null;"과 같은 검사 문을 사용하여 엄격한 동등 연산자를 사용하여 null 값을 확인할 수 있습니다.

자바스크립트에서 null은 무엇인가요?

이 기사의 운영 환경: Windows 7 시스템, JavaScript 버전 1.8.5, DELL G3 컴퓨터.

자바스크립트에서 null은 무엇인가요?

JavaScript의 null에 대한 모든 것

JavaScript에는 기본 유형(문자열, 부울 숫자, 기호)과 객체의 두 가지 유형이 있습니다.
개체는 복잡 데이터 구조 이며, JS에서 가장 간단한 개체는 일반 개체입니다. 키 집합 관련 값 ​​:

let myObject = {
  name: '前端小智'
}
로그인 후 복사

그러나 어떤 경우에는 개체 를 만들 수 없습니다. 이 경우 JS는 객체가 누락되었음을 나타내는 특수 값 null을 제공합니다. null —表示缺少对象。

let myObject = null
로그인 후 복사

1. null的概念

值 null 特指对象的值未设置,它是 JS 基本类型 之一,在布尔运算中被认为是falsy。

例如,函数greetObject()创建对象,但是在无法创建对象时也可以返回null:

function greetObject(who) {
  if (!who) {
    return null;
  }
  return { message: `Hello, ${who}!` };
}

greetObject('Eric'); // => { message: 'Hello, Eric!' }
greetObject();       // => null
로그인 후 복사

但是,在不带参数的情况下调用函数greetObject() 时,该函数返回null。 返回null是合理的,因为who参数没有值。

2. 如何检查null

检查null值的好方法是使用严格相等运算符

const missingObject = null;
const existingObject = { message: 'Hello!' };

missingObject  === null; // => true
existingObject === null; // => false
로그인 후 복사

missingObject === null的结果为true,因为missingObject变量包含一个null 值。

如果变量包含非空值(例如对象),则表达式existObject === null 的计算结果为false

2.1 null 是虚值

nullfalse、0、''、undefined、NaN都是虚值。如果在条件语句中遇到虚值,那么 JS 将把虚值强制为false

Boolean(null); // => false

if (null) {
  console.log('null is truthy')
} else {
  console.log('null is falsy')
}
로그인 후 복사

2.2 typeof null

type null的结果是什么

typeof null; // => 'object'
로그인 후 복사

为什么是'object',typoef null为object是早期 JS 实现中的一个错误

要使用typeof运算符检测null值。 如前所述,使用严格等于运算符myVar === null

如果我们想使用typeof运算符检查变量是否是对象,还需要排除null值:

function isObject(object) {
  return typeof object === 'object' && object !== null;
}

isObject({ prop: 'Value' }); // => true
isObject(15);                // => false
isObject(null);              // => false
로그인 후 복사

3. null 的陷阱

null经常会在我们认为该变量是对象的情况下意外出现。然后,如果从null中提取属性,JS 会抛出一个错误。
所以说我么你想要从一个对象上取属性的时候,要注意判断这个对象可能是null, 要不然的话可能会出错。

【推荐学习:《javascript基础教程》】

4. null 的替代方法

当无法构造对象时,我们通常的做法是返回null,但是这种做法有缺点。在执行堆栈中出现null时,刚必须进行检查。

尝试避免返回 null 的做法:

  • 返回默认对象而不是null
  • 抛出错误而不是返回null

5. null vs undefined

undefined是未初始化变量对象属性的值
nullundefined之间的主要区别是,null表示丢失的对象,而undefinedrrreee

1. null의 개념

null 값은 구체적으로 object의 값이 설정되지 않은 것을 의미합니다. JS는 부울 연산에 사용됩니다. 거짓이라고 생각하세요.

예를 들어, GreetingObject() 함수는 객체를 생성하지만 객체를 생성할 수 없는 경우 null을 반환할 수도 있습니다. rrreee

그러나 GreetingObject() 함수가 매개 변수 없이 호출되면 함수는 null을 반환합니다. . <code>who 매개변수에 값이 없으므로 null을 반환하는 것이 합리적입니다. 🎜

2. null 확인 방법

🎜null 값을 확인하는 좋은 방법은 🎜엄격한 같음을 사용하는 것입니다. 연산자🎜: 🎜rrreee🎜missingObject 변수에 null가 포함되어 있으므로 >missingObject === null의 결과는 true입니다. > 가치. 🎜🎜변수에 null이 아닌 값(예: 객체)이 포함된 경우 existObject === null 표현식은 false로 평가됩니다. 🎜

2.1 null is an imaginary value

🎜nullfalse, 0, '', 정의되지 않음, NaN모두 <code>더미 값입니다. 조건문에서 false 값이 발견되면 JS는 false 값을 false로 강제 설정합니다. 🎜rrreee

2.2 null 유형

🎜type null의 결과는 무엇입니까🎜rrreee🎜'object', typoef null은 왜입니까? 객체는 초기 JS 구현의 🎜버그🎜입니다. 🎜🎜 <code>typeof 연산자를 사용하여 null 값을 감지합니다. 앞에서 언급한 것처럼 엄격한 항등 연산자 myVar === null을 사용하세요. 🎜🎜 typeof 연산자를 사용하여 변수가 객체인지 확인하려면 null 값도 제외해야 합니다. 🎜rrreee

3. null

🎜null 트랩은 변수가 객체라고 생각할 때 예기치 않게 나타나는 경우가 많습니다. 그런 다음 null에서 속성을 추출하면 JS에서 오류가 발생합니다. 🎜그러므로 객체에서 속성을 얻으려면 해당 객체가 null일 수도 있고, 그렇지 않으면 오류가 발생할 수 있다는 점을 주의해서 판단해야 합니다. 🎜🎜【추천 학습: "🎜javascript 기본 튜토리얼🎜"]🎜

4. null 대체

🎜객체를 생성할 수 없는 경우 일반적인 접근 방식은 null을 반환하는 것이지만 이 접근 방식에는 🎜 단점 🎜이 있습니다. 실행 스택에 null이 나타나면 검사를 수행해야 합니다. 🎜🎜null 반환을 방지하세요. 🎜
  • null 대신 기본 개체를 반환합니다.
  • null

5. null 대 정의되지 않음

🎜정의되지 않음은 🎜 🎜 변수 🎜 또는 🎜 객체 속성 🎜 🎜의 값 초기화 nullundefine의 주요 차이점은 null이 누락된 객체를 나타낸다는 것입니다. , undefine은 초기화되지 않은 상태를 나타냅니다. 🎜🎜🎜팁: 글 작성 후 자동으로 목차를 생성할 수 있습니다. 생성 방법은 오른쪽 도움말 문서를 참조하세요🎜🎜🎜🎜🎜🎜

위 내용은 자바스크립트에서 null은 무엇인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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