මම මෙම ප්රශ්නය දුටුවෙමි , නමුත් මම ජාවාස්ක්රිප්ට් විශේෂිත උදාහරණයක් දුටුවේ නැත. string.Empty
ජාවාස්ක්රිප්ට් හි සරල එකක් තිබේද , නැතහොත් එය පරික්ෂා කිරීමේ අවස්ථාවක්ද ""
?
මම මෙම ප්රශ්නය දුටුවෙමි , නමුත් මම ජාවාස්ක්රිප්ට් විශේෂිත උදාහරණයක් දුටුවේ නැත. string.Empty
ජාවාස්ක්රිප්ට් හි සරල එකක් තිබේද , නැතහොත් එය පරික්ෂා කිරීමේ අවස්ථාවක්ද ""
?
Answers:
ඔබට කිසියම් වටිනාකමක් තිබේදැයි පරීක්ෂා කිරීමට අවශ්ය නම්, ඔබට එය කළ හැකිය
if (strValue) {
//do something
}
ඔබ ශූන්ය පුරා හිස් අගයක් සඳහා විශේෂයෙන් පරීක්ෂා කිරීමට අවශ්ය නම්, මා විරුද්ධ පිරික්සුමක් සිතන්නේ ""
භාවිතා ඔබේ හොඳම ඔට්ටු වන ===
ක්රියාකරු (ඔබ එරෙහිව සංසන්දනය කරනවා වැලක්, ඇත්තෙන්ම, ඔබ එය බව දැන එසේ බව).
if (strValue === "") {
//...
}
=== ''
එදිරිව පරීක්ෂා කිරීමෙන් .length
පැහැදිලි දියුණුවක් .length
නූලක් හිස්ද, ශුන්ය හෝ නිර්වචනය කර නොමැතිදැයි පරීක්ෂා කිරීම සඳහා මම භාවිතා කරන්නේ:
function isEmpty(str) {
return (!str || 0 === str.length);
}
නූලක් හිස්, ශුන්ය හෝ නිර්වචනය කර නොමැතිදැයි පරීක්ෂා කිරීම සඳහා මම භාවිතා කරන්නේ:
function isBlank(str) {
return (!str || /^\s*$/.test(str));
}
නූලක් හිස්ද නැතිනම් සුදු අවකාශයක් පමණක් තිබේදැයි පරීක්ෂා කිරීම සඳහා:
String.prototype.isEmpty = function() {
return (this.length === 0 || !this.trim());
};
if (variable == constant value)
අතර ඔබට '=' අමතක වුවහොත් ඔබ පරීක්ෂණය වෙනුවට විචල්යයට නියත අගය පවරයි . ඔබට if හි විචල්යය පැවරිය හැකි බැවින් කේතය තවමත් ක්රියා කරයි. එබැවින් මෙම තත්වය ලිවීමට වඩා ආරක්ෂිත ක්රමයක් වන්නේ නියත අගය සහ විචල්යය ආපසු හැරවීමයි. මේ ආකාරයෙන් ඔබ ඔබේ කේතය පරීක්ෂා කරන විට දෝෂයක් පෙනෙනු ඇත (පැවරුමේ වලංගු නොවන අතක්). කොන්දේසි යටතේ පැවරීම තහනම් කිරීමට ඔබට JSHint වැනි දෙයක් භාවිතා කළ හැකි අතර ඔබ එය ලියන විට අනතුරු අඟවනු ලැබේ.
/^\s*$/.test(str)
සැබවින්ම කියවිය නොහැකි ලැජ්ජාව - සමහර විට සරල කේතයක් හෝ රීජෙක්ස් භාවිතයෙන් අවකාශය ඉවත් කිරීම වඩා හොඳ විය හැකිද? බලන්න stackoverflow.com/questions/6623231/... ද stackoverflow.com/questions/10800355/...
if blue is the sky
. Dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html
පෙර පිළිතුරු සියල්ලම හොඳයි, නමුත් මෙය ඊටත් වඩා හොඳ වනු ඇත. පාවිච්චි කරන්න!!
( නොවේ ) ක්රියාකරු .
if(!!str){
// Some code here
}
හෝ ටයිප් වාත්තු කිරීම භාවිතා කරන්න:
if(Boolean(str)){
// Code here
}
දෙකම එකම කාර්යයක් කරයි. විචල්යය බූලියන් වෙත ටයිප් කරන්න, එහිදී str
විචල්යයකි.
එය නැවත false
සඳහා null,undefined,0,000,"",false
.
එය true
"0" සහ සුදු අවකාශය "" සඳහා නැවත පැමිණේ .
if(str)
සහ හැසිරීම අතර වෙනසක් if(!!str)
තිබේද?
var any = (!!str1 && !!str2 && !!str3)
එහි අංකයක් තිබේ නම් හැසිරවීම
!!str.trim()
නූල හිස් අවකාශයකින් පමණක් සාදා නැති බවට වග බලා ගැනීමට.
Boolean(str)
එය කියවිය හැකි හා අඩු "wtfish" වේ.
ඔබට ලබා ගත හැකි ආසන්නතම දෙය නම් str.Empty
(str යනු නූල් බව පූර්ව කොන්දේසියක් සහිතව):
if (!str.length) { ...
str.Empty
.
නූල හිස් හිස් පොකුරක් පමණක් නොවන බවට ඔබට සහතික වීමට අවශ්ය නම් (මෙය ආකෘති වලංගු කිරීම සඳහා යැයි මම සිතමි) ඔබ අවකාශය වෙනුවට ආදේශ කිරීමක් කළ යුතුය.
if(str.replace(/\s/g,"") == ""){
}
if(str.match(/\S/g)){}
str.match(/\S/)
var trimLeft = /^\s+/, trimRight = /\s+$/;
මම භාවිතා කරන්නේ:
function empty(e) {
switch (e) {
case "":
case 0:
case "0":
case null:
case false:
case typeof(e) == "undefined":
return true;
default:
return false;
}
}
empty(null) // true
empty(0) // true
empty(7) // false
empty("") // true
empty((function() {
return ""
})) // false
typeof
තුළ switch
මට වැඩ කටයුතු කළේ නැත. මම if (typeof e == "undefined")
පරීක්ෂණයක් එකතු කළ අතර එය ක්රියාත්මක වේ. මන්ද?
case undefined:
ඒ වෙනුවට අපට භාවිතා කළ හැකිද case typeof(e) == "undefined":
?
ඔබට lodash භාවිතා කළ හැකිය : _.isEmpty (අගය).
ඒ වගේ ගොඩක් නඩු ආවරණය {}
, ''
, null
, undefined
ආදිය,
එහෙත් එය සෑම විටම නැවත true
සඳහා Number
වර්ගය JavaScript ප්රාථමික දත්ත වර්ග මෙන් _.isEmpty(10)
හෝ _.isEmpty(Number.MAX_VALUE)
ප්රතිලාභ යන දෙකම true
.
_.isEmpty(" "); // => false
" "
හිස් නොවේ. _.isEmpty("");
නැවත සත්ය වේ.
කාර්යය:
function is_empty(x)
{
return (
(typeof x == 'undefined')
||
(x == null)
||
(x == false) //same as: !x
||
(x.length == 0)
||
(x == "")
||
(x.replace(/\s/g,"") == "")
||
(!/[^\s]/.test(x))
||
(/^\s*$/.test(x))
);
}
PS: ජාවාස්ක්රිප්ට් හි, පසුව රේඛා බිඳීමක් භාවිතා නොකරන්න return
;
if
ප්රකාශයකට දැමීමෙන් පලක් නැත .
උත්සාහ කරන්න:
if (str && str.trim().length) {
//...
}
str.trim().length
str.trim()
මගේ පරීක්ෂණ ප්රති .ල අනුව 1% ට වඩා වේගයෙන් කරනු ඇත .
if (!str) { ... }
වඩාත්ම කාර්යක්ෂම ක්රමය ගැන මම ඕනෑවට වඩා කරදර නොවෙමි . ඔබේ අභිප්රාය සඳහා වඩාත් පැහැදිලිව පෙනෙන දේ භාවිතා කරන්න. මට නම් එය සාමාන්යයෙන් ය strVar == ""
.
වෙතින් අදහස් අනුව කොන්ස්ටන් , strVar යනු පූර්ණ සංඛ්යාවකි 0 අගය අඩංගු දක්වා සමහර ආකාරය අවසන් හැකි නම්, එසේ නම් එය නියත වශයෙන්ම එම අරමුණ-පැහැදිලි තත්ත්වයන් එක් වනු ඇත.
===
වඩා හොඳ වනු ඇත. එය සත්ය වන්නේ ආපසු strVar
එන්නේ හිස් නූලක් නම් පමණි .
තෝරාගත් විසඳුම් 18 ක් සඳහා මම macOS v10.13.6 (High Sierra) මත පරීක්ෂණ සිදු කරමි . විසඳුම් තරමක් වෙනස් ලෙස ක්රියා කරයි (කෙළවරේ ආදාන දත්ත සඳහා) එය පහත දැක්වෙන ස්නිපටයේ ඉදිරිපත් කර ඇත.
නිගමන
!str
, ==
, ===
හා length
සියලු බ්රව්සර් (A, B, C, G, මම, j) සඳහා වේගවත්test
, replace
) මත පදනම් වූ විසඳුම් සහ charAt
සියලු බ්රව්සර් සඳහා මන්දගාමී වේ (H, L, M, P)පහත දැක්වෙන ස්නිපටයේ විවිධ ආදාන පරාමිතීන් භාවිතා කරමින් තෝරාගත් ක්රම 18 ක ප්රති results ල සංසන්දනය කරමි
""
"a"
" "
- හිස් නූල, අකුරු සහිත නූල් සහ අවකාශය සහිත නූල්[]
{}
f
- අරාව, වස්තුව සහ ක්රියාකාරිත්වය0
1
NaN
Infinity
- අංකtrue
false
- බූලියන්null
undefined
පරීක්ෂා කරන ලද සියලුම ක්රම සියලු ආදාන අවස්ථාවන්ට සහාය නොදක්වයි.
ඊට පස්සේ මම වේග පරීක්ෂාව නඩුව ඉටු සියලු ක්රමෝපායන් සඳහා str = ""
බ්රව්සර ක්රෝම් v78.0.0, Safari v13.0.4, සහ ෆයර්ෆොක්ස් v71.0.0 සඳහා - ඔබ පරීක්ෂණ ඔබගේ යන්ත්රය මත ධාවනය කළ හැකි මෙහි
var a;
පවතින බව පරීක්ෂා කරන්නඅගය කපා දමන්න false spaces
, පසුව පරීක්ෂා කරන්නemptiness
if ((a)&&(a.trim()!=''))
{
// if variable a is not empty do this
}
පිළිතුරු ගොඩක්, සහ විවිධ හැකියාවන් ගොඩක්!
ඉක්මන් හා සරල ක්රියාත්මක කිරීම සඳහා සැකයකින් තොරව ජයග්රාහකයා වන්නේ: if (!str.length) {...}
කෙසේ වෙතත්, වෙනත් බොහෝ උදාහරණ තිබේ. මේ සඳහා ගත හැකි හොඳම ක්රියාකාරී ක්රමය, මම යෝජනා කරන්නේ:
function empty(str)
{
if (typeof str == 'undefined' || !str || str.length === 0 || str === "" || !/[^\s]/.test(str) || /^\s*$/.test(str) || str.replace(/\s/g,"") === "")
{
return true;
}
else
{
return false;
}
}
ටිකක් වැඩිපුර, මම දන්නවා.
str.length === 0
විධිමත් පරාමිතීන් නොමැති ඕනෑම ශ්රිතයක් සඳහා සත්ය වේ.
මම සාමාන්යයෙන් මේ වගේ දෙයක් පාවිච්චි කරනවා,
if (!str.length) {
// Do something
}
typeof variable != "undefined"
හිස් දැයි පරීක්ෂා කිරීමට පෙර ඔබට පරීක්ෂා කළ හැකිය .
නූලක ඇති ශුන්ය අක්ෂර ඇතිවීමේ හැකියාව සැලකිල්ලට ගන්නා පිළිතුරක් මා දැක නැත. උදාහරණයක් ලෙස, අපට ශුන්ය අක්ෂර මාලාවක් තිබේ නම්:
var y = "\0"; // an empty string, but has a null character
(y === "") // false, testing against an empty string does not work
(y.length === 0) // false
(y) // true, this is also not expected
(y.match(/^[\s]*$/)) // false, again not wanted
එහි ශුන්යතාවය පරීක්ෂා කිරීම සඳහා කෙනෙකුට මේ වගේ දෙයක් කළ හැකිය:
String.prototype.isNull = function(){
return Boolean(this.match(/^[\0]*$/));
}
...
"\0".isNull() // true
එය ශුන්ය නූලක් මත සහ හිස් නූලක් මත ක්රියා කරන අතර එය සියලු නූල් සඳහා ප්රවේශ විය හැකිය. ඊට අමතරව, එය වෙනත් ජාවාස්ක්රිප්ට් හිස් හෝ සුදු පැහැති අක්ෂර (එනම් නොකැඩෙන අවකාශය, බයිට් ඇණවුම් සලකුණ, රේඛාව / ඡේද බෙදුම්කරු ආදිය) අඩංගු වන පරිදි පුළුල් කළ හැකිය.
මේ අතර , ශුන්ය, නිර්වචනය නොකළ, '', '', {}, [] වැනි සියලුම 'හිස් කිරීම්' පරීක්ෂා කරන එක් ශ්රිතයක් අපට තිබිය හැකිය . ඉතින් මම මේක ලිව්වා.
var isEmpty = function(data) {
if(typeof(data) === 'object'){
if(JSON.stringify(data) === '{}' || JSON.stringify(data) === '[]'){
return true;
}else if(!data){
return true;
}
return false;
}else if(typeof(data) === 'string'){
if(!data.trim()){
return true;
}
return false;
}else if(typeof(data) === 'undefined'){
return true;
}else{
return false;
}
}
නඩු සහ ප්රති .ල භාවිතා කරන්න.
console.log(isEmpty()); // true
console.log(isEmpty(null)); // true
console.log(isEmpty('')); // true
console.log(isEmpty(' ')); // true
console.log(isEmpty(undefined)); // true
console.log(isEmpty({})); // true
console.log(isEmpty([])); // true
console.log(isEmpty(0)); // false
console.log(isEmpty('Hey')); // false
මම මෙහි හොඳ පිළිතුරක් දුටුවේ නැත (අවම වශයෙන් මට ගැලපෙන පිළිතුරක්වත් නැත)
ඒ නිසා මම මටම පිළිතුරු දීමට තීරණය කළෙමි.
value === undefined || value === null || value === "";
එය නිර්වචනය කර නොමැතිදැයි පරීක්ෂා කිරීම ආරම්භ කළ යුතුය. එසේ නොමැතිනම් ඔබේ ක්රමය පුපුරා යා හැකි අතර, එය ශුන්යයට සමානද නැතිනම් හිස් නූලකට සමානදැයි ඔබට පරීක්ෂා කළ හැකිය.
ඔබට තිබිය නොහැක !! හෝ if(value)
ඔබ පරික්ෂා කළහොත් 0
එය ඔබට ව්යාජ පිළිතුරක් ලබා දෙනු ඇත (0 අසත්යය).
එය පැවසීමත් සමඟ, එය මෙවැනි ක්රමයකින් ඔතා:
public static isEmpty(value: any): boolean {
return value === undefined || value === null || value === "";
}
PS: ඔබට යතුරු ලියනය පරීක්ෂා කිරීමට අවශ්ය නැත , මන්ද එය පුපුරා ගොස් ක්රමයට ඇතුළු වීමට පෙර විසි කරන බැවිනි
මේ වන විට නූල් හිස්ද නැද්ද යන්න පරීක්ෂා කිරීම සඳහා string.empty වැනි සෘජු ක්රමයක් නොමැත. නමුත් ඔබේ කේතය තුළ ඔබට හිස් නූලක් සඳහා එතීමේ චෙක්පතක් භාවිතා කළ හැකිය:
// considering the variable in which your string is saved is named str.
if (str && str.length>0) {
// Your code here which you want to run if the string is not empty.
}
මෙය භාවිතා කිරීමෙන් ඔබට නූල් ද නිර්වචනය කර නොමැති බව සහතික කළ හැකිය. මතක තබා ගන්න, නිර්වචනය නොකළ, ශුන්ය හා හිස් යනු වෙනස් කරුණු තුනකි.
let rand = ()=>Math.random()
, පසුව rand && rand.length > 0)
සාවද්ය ලෙස ආපසු එවන්න, නමුත් පැහැදිලිවම fn "හිස්" නොවේ. ආකෘති පරාමිතීන් නොමැති ඕනෑම ශ්රිතයක් සඳහා එය සාවද්ය වේ.
Math.random()
විසින් අංකයක් ලබා දෙන අතර එය නූලක් නොවේ. මෙම පිළිතුර නූල් ගැන ය. ;-)
මේ සියලු පිළිතුරු හොඳයි.
නමුත් විචල්යය යනු නූලක් බව මට සහතික විය නොහැක, අවකාශයන් පමණක් අඩංගු නොවේ (මෙය මට වැදගත් වේ), සහ '0' (නූල්) අඩංගු විය හැකිය.
මගේ අනුවාදය:
function empty(str){
return !str || !/[^\s]+/.test(str);
}
empty(null); // true
empty(0); // true
empty(7); // false
empty(""); // true
empty("0"); // false
empty(" "); // true
empty(0)
සහ empty(7)
එම අගය නැවත කළ යුතුය.
empty("0")
ආපසු යා යුතුය false
(එය හිස් නූලක් නොවන නිසා), නමුත් එය හිස් බැවින් empty(0)
ආපසු යා යුතුය true
:)
empty
මෙම අවස්ථාවේදී නොමඟ යවන නමකි.
empty
හොඳයි. හිස් ශ්රිතය සඳහා වන php docs හි : මෙම ශ්රිතය Returns FALSE if var exists and has a non-empty, non-zero value. Otherwise returns TRUE.
අතර වෙනස PHP
- එම නූල '0'
හිස් යැයි හඳුනා නොගනී.
empty
සාවද්ය හා නොමඟ යවන නමකි. PHP හි දුර්වල ලෙස නම් කර ඇති empty
ශ්රිතයක් තිබීම සිත්ගන්නා කරුණකි , නමුත් PHP හි අසමත්වීම් වලට ජාවාස්ක්රිප්ට් සමඟ කිසිදු සම්බන්ධයක් නොමැත.
ආරම්භ වන්නේ:
return (!value || value == undefined || value == "" || value.length == 0);
අවසාන කොන්දේසිය දෙස බලන විට, අගය == "" නම්, එහි දිග 0 විය යුතුය. එබැවින් එය අතහරින්න:
return (!value || value == undefined || value == "");
නමුත් ඉන්න! ජාවාස්ක්රිප්ට් හි හිස් නූලක් වැරදිය. එබැවින් පහත වැටීමේ අගය == "":
return (!value || value == undefined);
තවද, නිර්වචනය නොකළ සත්යයකි, එම නිසා චෙක්පත අවශ්ය නොවේ. එබැවින් අපට ඇත්තේ:
return (!value);
අපට වරහන් අවශ්ය නොවේ:
return !value
value = false
නැත්නම් value = 0
. ප්රශ්නයට අනුව නිවැරදි ප්රතිචාරය ඔබ ලබා දෙනවාද?
isEmpty()
ක්රමයක් නැත , ඔබ වර්ගය සහ දිග පරීක්ෂා කළ යුතුය:
if (typeof test === 'string' && test.length === 0){
...
ක්රියාත්මක වන දෝෂයන් ඇති විට හෝ වළක්වා ගැනීම සඳහා චෙක්පත් වර්ගය අවශ්ය test
වේ .undefined
null
මේක උත්සාහ කරන්න
str.value.length == 0
"".value.length
දෝෂයක් ඇති කරයි. එය විය යුතුයstr.length === 0
TypeError
නම් str
සමාන වේ undefined
හෝnull
ඔබට එය පහසුවෙන් ජාවාස්ක්රිප්ට් හි ස්වදේශීය සංගීත වස්තුවට එකතු කර නැවත නැවත භාවිතා
කළ හැකිය ... හිස් කේත පරීක්ෂා කිරීමට ඔබට අවශ්ය නම් පහත කේතය වැනි සරල දෙයක් ඔබට කළ හැකිය .''
String.prototype.isEmpty = String.prototype.isEmpty || function() {
return !(!!this.length);
}
එසේ නොමැතිනම් ඔබ ''
හිස් නූල් සහ ' '
අවකාශය යන දෙකම පරීක්ෂා කිරීමට trim()
කැමති නම්, පහත කේතය වැනි දෙයක් එකතු කිරීමෙන් ඔබට එය කළ හැකිය :
String.prototype.isEmpty = String.prototype.isEmpty || function() {
return !(!!this.trim().length);
}
ඔබට එය මේ ආකාරයෙන් හැඳින්විය හැකිය:
''.isEmpty(); //return true
'alireza'.isEmpty(); //return false
!(!!this.length)
කරනවාට වඩා කිරීමෙන් ලැබෙන ප්රයෝජනය කුමක්ද? ශුන්ය දිග නූලක් දැනටමත් ව්යාජ ය, වරහන් වර්ග අතිරික්ත වන අතර එය තුන් වරක් ප්රතික්ෂේප කිරීම හරියටම වරක් ප්රතික්ෂේප කිරීම හා සමාන වේ. !this
!this.trim()
ඔබ පරීක්ෂක ශ්රිතයකට නූල් නොවන සහ හිස් නොවන / ශුන්ය අගයක් ලබා දුන්නොත් කුමක් සිදුවේද යන්න පිළිබඳව මම පර්යේෂණ කිහිපයක් කළෙමි. බොහෝ දෙනා දන්නා පරිදි, (0 == "") ජාවාස්ක්රිප්ට් හි සත්ය වේ, නමුත් 0 යනු වටිනාකමක් වන අතර හිස් හෝ ශුන්ය නොවන බැවින් ඔබට එය පරීක්ෂා කිරීමට අවශ්ය විය හැකිය.
පහත දැක්වෙන ශ්රිත දෙක සත්ය වන්නේ නිශ්චිත, ශුන්ය, හිස් / සුදු අවකාශයේ අගයන් සඳහා පමණක් වන අතර සංඛ්යා, බූලියන්, වස්තූන්, ප්රකාශන යනාදී සියල්ල සඳහා අසත්යය.
function IsNullOrEmpty(value)
{
return (value == null || value === "");
}
function IsNullOrWhiteSpace(value)
{
return (value == null || !/\S/.test(value));
}
වඩාත් සංකීර්ණ උදාහරණ පවතී, නමුත් මේවා සරල වන අතර ස්ථාවර ප්රති .ල ලබා දේ. (අගය == ශූන්ය) චෙක්පතට ඇතුළත් කර ඇති බැවින්, නිර්වචනය නොකළ දේ පරීක්ෂා කිරීම අවශ්ය නොවේ. මේ ආකාරයට සංගීතයට එකතු කිරීමෙන් ඔබට C # හැසිරීම අනුකරණය කළ හැකිය :
String.IsNullOrEmpty = function (value) { ... }
ඔබට එය ස්ට්රිංස් මූලාකෘතියට ඇතුළත් කිරීමට අවශ්ය නැත, මන්ද සංගීත පන්තියේ උදාහරණය ශුන්ය නම් එය දෝෂ වනු ඇත:
String.prototype.IsNullOrEmpty = function (value) { ... }
var myvar = null;
if (1 == 2) { myvar = "OK"; } // Could be set
myvar.IsNullOrEmpty(); // Throws error
මම පහත දැක්වෙන අගය අරාව සමඟ පරීක්ෂා කළෙමි. සැකයක් ඇත්නම් ඔබේ කාර්යයන් පරීක්ෂා කිරීම සඳහා ඔබට එය ලූප කළ හැකිය.
// Helper items
var MyClass = function (b) { this.a = "Hello World!"; this.b = b; };
MyClass.prototype.hello = function () { if (this.b == null) { alert(this.a); } else { alert(this.b); } };
var z;
var arr = [
// 0: Explanation for printing, 1: actual value
['undefined', undefined],
['(var) z', z],
['null', null],
['empty', ''],
['space', ' '],
['tab', '\t'],
['newline', '\n'],
['carriage return', '\r'],
['"\\r\\n"', '\r\n'],
['"\\n\\r"', '\n\r'],
['" \\t \\n "', ' \t \n '],
['" txt \\t test \\n"', ' txt \t test \n'],
['"txt"', "txt"],
['"undefined"', 'undefined'],
['"null"', 'null'],
['"0"', '0'],
['"1"', '1'],
['"1.5"', '1.5'],
['"1,5"', '1,5'], // Valid number in some locales, not in JavaScript
['comma', ','],
['dot', '.'],
['".5"', '.5'],
['0', 0],
['0.0', 0.0],
['1', 1],
['1.5', 1.5],
['NaN', NaN],
['/\S/', /\S/],
['true', true],
['false', false],
['function, returns true', function () { return true; } ],
['function, returns false', function () { return false; } ],
['function, returns null', function () { return null; } ],
['function, returns string', function () { return "test"; } ],
['function, returns undefined', function () { } ],
['MyClass', MyClass],
['new MyClass', new MyClass()],
['empty object', {}],
['non-empty object', { a: "a", match: "bogus", test: "bogus"}],
['object with toString: string', { a: "a", match: "bogus", test: "bogus", toString: function () { return "test"; } }],
['object with toString: null', { a: "a", match: "bogus", test: "bogus", toString: function () { return null; } }]
];