From 5d2be7e299131a31cffbd73edea59cde30445608 Mon Sep 17 00:00:00 2001 From: John Resig Date: Fri, 27 Aug 2010 06:10:52 -0700 Subject: [PATCH] Added some tweaks to $.type to handle null and undefined. Added a bunch of unit tests as well. --- src/core.js | 6 +++++- test/unit/core.js | 23 +++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index 5a0055562..81a920b87 100644 --- a/src/core.js +++ b/src/core.js @@ -446,7 +446,11 @@ jQuery.extend({ }, type: function( obj ) { - return toString.call(obj).slice(8, -1).toLowerCase(); + return obj === null ? + "null" : + obj === undefined ? + "undefined" : + toString.call(obj).slice(8, -1).toLowerCase(); }, isPlainObject: function( obj ) { diff --git a/test/unit/core.js b/test/unit/core.js index 3960a7df9..3ba16a486 100644 --- a/test/unit/core.js +++ b/test/unit/core.js @@ -217,6 +217,29 @@ test("trim", function() { equals( jQuery.trim( false ), "false", "Boolean" ); }); +test("type", function() { + expect(18); + + equals( jQuery.type(null), "null", "null" ); + equals( jQuery.type(undefined), "undefined", "undefined" ); + equals( jQuery.type(true), "boolean", "Boolean" ); + equals( jQuery.type(false), "boolean", "Boolean" ); + equals( jQuery.type(Boolean(true)), "boolean", "Boolean" ); + equals( jQuery.type(0), "number", "Number" ); + equals( jQuery.type(1), "number", "Number" ); + equals( jQuery.type(Number(1)), "number", "Number" ); + equals( jQuery.type(""), "string", "String" ); + equals( jQuery.type("a"), "string", "String" ); + equals( jQuery.type(String("a")), "string", "String" ); + equals( jQuery.type({}), "object", "Object" ); + equals( jQuery.type(/foo/), "regexp", "RegExp" ); + equals( jQuery.type(new RegExp("asdf")), "regexp", "RegExp" ); + equals( jQuery.type([1]), "array", "Array" ); + equals( jQuery.type(new Date()), "date", "Date" ); + equals( jQuery.type(new Function("return;")), "function", "Function" ); + equals( jQuery.type(function(){}), "function", "Function" ); +}); + test("isPlainObject", function() { expect(14); -- 2.39.5