==== edit ====
ok, my bad, undefined means to unify it, and null means that it doesn't indicate anything, it doesn't matter.
http://www.2ality.com/2013/10/typeof-null.html
==== / edit ====
there is no such thing as null-string or null-type. null has no type, this means that the variable is not initialized, in other words, the variable points to nowhere. any uninitialized variable is null. like pointers in C ++. a pointer can point to any type, but if its uninitialization indicates a quasi-random place in memory.
SomeType * myVar;
its value is not null, if you use this object, you are useless for a long time, and you have no way to determine if its a valid pointer or not.
SomeType * myVar = 0;
this way you can say that this is an uninitialized pointer, just check if not 0 or not.
in higher-level languages, you don’t need to deal with these problems directly, therefore
var something: AnyObjectType;
automatically null, aka uninitialized.
checking if a string or array is empty or not is another question. in php $ var = array (); if ($ var) evaluates to true since its actual object, not null. empty ($ var) will be the check you use to see if the array really has any content. in js it will be if (myArray && myArray.length) to see if it is a living object and see if it has content.
Lines
can be more complex, since a line with only a space in it is a completely valid object with the actual contents, but you consider it empty in most cases of use.