In the previous Tutorial we looked at type operators,
special tags that tell assertivedocs what type a value is. However, these operators do
not allow for the values undefined, null, or NaN. In JavaScript, these keywords
have specific meanings and purposes, and it is very useful to test for these values.
Luckily, assertivedocs has you covered, with operators for each of them.
| Type | Operator |
|---|---|
| null | :null |
| NaN | :NaN |
| undefined | :undefined |
Unlike the other operators, these do not need a value to be attached to: They are the
value and will override any value they are attached to. For example, test:null and
:null both resolve to null.
Examples
:null
/**
* Checks if a value is null.
* @param {any} value - Value to check
* @returns {Boolean}
*
* @assert NullTest1 - :null=>true:bool
* @assert NullTest2 - test:null=>true:bool
* @assert NullTest3 - hello:string=>false:bool
*/
function isNull(value) {
return value === null;
}
:NaN
/**
* Checks if a value is NaN.
* @param {any} value - Value to check
* @returns {Boolean}
*
* @assert NaNTest1 - :NaN=>true:bool
* @assert NaNTest2 - test:NaN=>true:bool
* @assert NaNTest3 - hello:string=>false:bool
*/
function isNaN(value) {
return value === NaN;
}
:undefined
undefined is useful for functions that do not return a value.
/**
* Logs a value to the console.
* @param {any} value - Value to log
*
* @assert LogTest1 - hello:string=>:undefined
* @assert LogTest2 - 1:int=>nothing:undefined
*/
function log(value) {
console.log(value);
}
Summary
This tutorial covered how to use null, NaN, and undefined in your assertions.