728x90
자바스크립트 내용을 검증하는 과정에서 null이 undefined까지 커버 할 수 있다는 것을 보았다. (그전에는 그렇게 크게 생각해보지는 않았다)
class Assert {
static notNull(data) {
if (data == null) {
throw "Null point exception"
}
}
}
위의 코드는 아래의 테스트를 모두 통과한다
describe("assert integration test", function () {
it("notNull", function () {
expect(() => Assert.notNull())
.toThrow();
});
it("notNull with undefined", function () {
expect(() => Assert.notNull(undefined))
.toThrow();
});
it("notNull with null", function () {
expect(() => Assert.notNull(null))
.toThrow();
});
}
첫번째 부터 순서대로 입력값이 undefined, null, undefined가 된다. 좀 더 자세히 보니 재미있는 점이 있었는데 이곳에 자세히 나와 있다. 하지만 이렇게 검증을 계속 해도 되는 것이 의문이다. 어떤 예외사항이 있는지는 짬이 안되서 잘 모르겠지만 나오는 대로 대처하는 방법을 찾아봐야겠다
정리하면 다음과 같다
- null은 할당된 값이다. 의미는 없다(nothing)라는 뜻
- undefined는 선언(declare)되었지만 아직 정의(define)되지는 않았다라는 뜻
- null과 undefined는
false
값 - null과 undefined는 모두 원시값, 하지만
typeof null = object
이다 null !== undefined
하지만null == undefined
아마 타입 체크까지하면(===
,는는는) null은 object 타입이라 타입이 없는 undefined와 다르게 나올 것이고, 단순 비교(==
,는는)는 타입 체크 안하니 같게 나오는 듯하다
728x90