whole_func_string: function valueOrDefault (value, defaultValue, type) {
          defaultValue = typeof defaultValue === _undefined ? null : defaultValue;
          var retVal;
          if (isset(type)) {
              retVal = issetAndOfType.apply(null, [value].concat(sjl.restArgs(arguments, 2))) ? value : defaultValue;
          }
          else {
              retVal = isset(value) ? value : defaultValue;
          }
          return retVal;
      }
func_code_string: function valueOrDefault (value, defaultValue, type) {
          defaultValue = typeof defaultValue === _undefined ? null : defaultValue;
          var retVal;
          if (isset(type)) {
              retVal = issetAndOfType.apply(null, [value].concat(sjl.restArgs(arguments, 2))) ? value : defaultValue;
          }
          else {
              retVal = isset(value) ? value : defaultValue;
          }
          return retVal;
      }
func_documentation_string: Returns value if it is set and of type else returns `defaultValue`
  @function module:sjl.valueOrDefault
  @param value {*} - Value to pass through.
  @param defaultValue {*} - Optional.  Value to use as default value if value is not set.  Default `null`.
  @param type {String|Function} - Optional.  Constructor or string representation of type;  E.g., String or 'String'