Back to js-datatype-foundation
10-pincode-checker.js
JavaScript
1/**
2 * 📦 Pincode Type Checker - Type Checking
3 *
4 * India Post ka naya system bana! Har parcel mein alag alag data types
5 * aate hain. Tujhe check karna hai — yeh number hai ya string? Integer
6 * hai ya float? Valid hai ya nahi? Type checking ka masala!
7 *
8 * Methods to explore: typeof, Number.isInteger(), Number.isFinite(),
9 * Number.isNaN(), Array.isArray(), Boolean()
10 *
11 * Functions:
12 *
13 * 1. getDataType(value)
14 * - typeof use karo, LEKIN special cases handle karo:
15 * - typeof null === "object" (JS ka famous bug!) → return "null"
16 * - typeof [] === "object" (Array bhi object hai) → return "array"
17 * - Baaki sab ke liye typeof ki value return karo
18 * - Example: getDataType(42) => "number"
19 * - Example: getDataType("hello") => "string"
20 * - Example: getDataType(null) => "null"
21 * - Example: getDataType([1,2]) => "array"
22 *
23 * 2. isValidParcelWeight(weight)
24 * - Number.isFinite() se check karo ki weight valid finite number hai
25 * - Weight positive bhi hona chahiye (> 0)
26 * - Infinity, NaN, ya non-number ke liye return false
27 * - Example: isValidParcelWeight(2.5) => true
28 * - Example: isValidParcelWeight(Infinity) => false
29 * - Example: isValidParcelWeight("5") => false (string hai, number nahi!)
30 *
31 * 3. isWholeNumber(value)
32 * - Number.isInteger() se check karo ki value whole number hai
33 * - Example: isWholeNumber(42) => true
34 * - Example: isWholeNumber(42.5) => false
35 * - Example: isWholeNumber("42") => false
36 *
37 * 4. isNotANumber(value)
38 * - Number.isNaN() se check karo ki value specifically NaN hai
39 * - NOTE: Number.isNaN() alag hai global isNaN() se!
40 * - Number.isNaN("hello") => false (string hai, NaN nahi)
41 * - isNaN("hello") => true (pehle convert karta hai)
42 * - Example: isNotANumber(NaN) => true
43 * - Example: isNotANumber("hello") => false
44 * - Example: isNotANumber(undefined) => false
45 *
46 * 5. isTruthy(value)
47 * - Boolean(value) se check karo ki value truthy hai ya nahi
48 * - JS mein Falsy values: false, 0, "", null, undefined, NaN
49 * - Sab kuch aur truthy hai (including [], {}, "0", "false")!
50 * - Example: isTruthy("hello") => true
51 * - Example: isTruthy(0) => false
52 * - Example: isTruthy([]) => true (haan, empty array truthy hai!)
53 *
54 * @example
55 * getDataType(null) // => "null"
56 * getDataType([1,2,3]) // => "array"
57 * isValidParcelWeight(2.5) // => true
58 * isTruthy("") // => false
59 */
60export function getDataType(value) {
61
62 if(value === undefined){
63 return "undefined"
64 }
65 if(value === null){
66 return "null"
67 }
68 if(Array.isArray(value)){
69 return "array"
70 }
71 return typeof value
72}
73
74export function isValidParcelWeight(weight) {
75 if(typeof weight == "string" || !Number.isFinite(weight) || !(weight > 0)){
76 return false
77 }
78
79 return true
80}
81
82export function isWholeNumber(value) {
83 if(typeof value == "string" || value == null){
84 return false
85 }
86 return Number.isInteger(value)
87}
88
89export function isNotANumber(value) {
90
91 return Number.isNaN(value)
92}
93
94export function isTruthy(value) {
95 return Boolean(value)
96}
97