Check js variable

check JS variable for undefined, null, empty, array, object

by Plippie Plop

HTML

<pre id="test">
//aa;
a;
b = "";
c = 0;
d = false;
e = null;
f = NaN;
g = "Hello World";
h = 1;
i = true;
j = {};
k = {data: "one" };
l = [],
m = [1, 2, 3];
n = "0";
o = -1;
p = " ";


</pre>

JavaScript

const t = document.getElementById('test');
const varToString = varObj => Object.keys(varObj)[0];

//var or let
let a,
  b = "",
  c = 0,
  d = false,
  e = null,
  f = NaN,
  g = "Hello world",
  h = 1,
  i = true,
  j = {},
  k = {
    data: "one"
  },
  l = [],
  m = [1, 2, 3],
  n = "0",
  o = -1,
  p = "''";




t.insertAdjacentHTML('beforeend', validString(a, "a"));
t.insertAdjacentHTML('beforeend', validString(b, "b"));
t.insertAdjacentHTML('beforeend', validString(c, "c"));
t.insertAdjacentHTML('beforeend', validString(d, "d"));
t.insertAdjacentHTML('beforeend', validString(e, "e"));
t.insertAdjacentHTML('beforeend', validString(f, "f"));
t.insertAdjacentHTML('beforeend', validString(g, "g"));
t.insertAdjacentHTML('beforeend', validString(h, "h"));
t.insertAdjacentHTML('beforeend', validString(i, "i"));
t.insertAdjacentHTML('beforeend', validString(j, "j"));
t.insertAdjacentHTML('beforeend', validString(k, "k"));
t.insertAdjacentHTML('beforeend', validString(l, "l"));
t.insertAdjacentHTML('beforeend', validString(m, "m"));
t.insertAdjacentHTML('beforeend', validString(n, "n"));
t.insertAdjacentHTML('beforeend', validString(o, "o"));
t.insertAdjacentHTML('beforeend', validString(p, "p"));

//non existing variable
if (typeof aa === "undefined") {
  t.insertAdjacentHTML('beforeend', "aa is not defined<br>");
}


function validString(str, varname) {

  let resp = 'The variable <strong>' + varname + '</strong> ';

  // an almost catch all:
  if (typeof str !== "undefined" && str) {


    resp += "is valid AND " + typeof str + ' ';

    if (Array.isArray(str)) {
      resp += "(Array) ";

      if (str.length) {
        resp += "AND had values ";
      } else {
        resp += "AND empty array";
      }
    } else if (typeof str === 'object') {

      if (Object.keys(str).length > 0) {
        resp += "AND has values "
      } else {
        resp += "AND is empty "
      }

    }


  } else {
    resp += "is <strong>invalid</strong>."
  }

  return resp +...