code: func isNullish(src interface{}) bool {
  	if src == nil {
  		return true
  	}
  	value := reflect.ValueOf(src)
  	if value.Kind() == reflect.Ptr {
  		if value.IsNil() {
  			return true
  		}
  		value = value.Elem()
  	}
  	switch value.Kind() {
  	case reflect.String:
  		// if src is ptr type and len(string)=0, it returns false
  		if !value.IsValid() {
  			return true
  		}
  	case reflect.Int:
  		return math.IsNaN(float64(value.Int()))
  	case reflect.Float32, reflect.Float64:
  		return math.IsNaN(float64(value.Float()))
  	}
  	return false
  }
docs: // Returns true if a value is null, undefined, or NaN.