javascript dynamic data type