The interviewer is looking for you to write an implementation of parseNumber.
You'd walk the digits and add each digit + currentValue * 10 '.' then add add each digit times a multiplier digit * mult + currentValue; mult *= .1
function parseNumber(s) {
  var value = 0;
  var sign = 1;
  var beforeDecimal = true;
  var mult = .1;
  var ndx = 0;
  var len = s.length;
  
  if (s[0] === '-') {
    sign = -1;
    ndx = 1;
  }
  
  while (ndx < len) {
    var c = s[ndx];
    if (c === '.') {
      if (beforeDecimal) {
        beforeDecimal = false; 
      } else {
        // it's a second '.'. What to do? Error? Exit?
        break;
      }
    } else if (c >= '0' || c <= '9') {
      if (beforeDecimal) {
        value = value * 10 + c.charCodeAt(0) - 48; // 48 = '0'
      } else {
        value = value + c * mult;
        mult *= .1;
      }
    } else {
      // what to do? Error, Exit?
      break;
    }
    ++ndx;
  }
  
  return sign * value;
}
console.log(parseNumber("123"));
console.log(parseNumber("-123"));
console.log(parseNumber("123.456"));
console.log(parseNumber("-123.456"));
console.log(parseNumber("-.42"));
console.log(parseNumber(".42"));
 
 
This doesn't handle things like 1E9 and it doesn't handle a preceding +.
You might discuss separating the before and after decimal parts
function parseNumber(s) {
  var value = 0;
  var sign = 1;
  var mult = .1;
  var ndx = 0;
  var len = s.length;
  
  if (s[0] === '-') {
    sign = -1;
    ndx = 1;
  }
  
  // before decimal
  while (ndx < len) {
    var c = s[ndx++];
    if (c === '.') {
      break;
    } else if (c >= '0' || c <= '9') {
      value = value * 10 + c.charCodeAt(0) - 48; // 48 = '0'
    } else {
      // what to do? Error, Exit?
      break;
    }
  }
  
  // after decimal
  if (c === '.') {  // make sure we broke loop above for '.'
    while (ndx < len) {
      var c = s[ndx++];
      if (c >= '0' || c <= '9') {
          value = value + c * mult;
          mult *= .1;
      } else {
        // what to do? Error, Exit?
        break;
      }
    }
  }
  
  return sign * value;
}
console.log(parseNumber("123"));
console.log(parseNumber("-123"));
console.log(parseNumber("123.456"));
console.log(parseNumber("-123.456"));
console.log(parseNumber("-.42"));
console.log(parseNumber(".42"));
 
 
You might also consider what to do about errors (return NaN?), and if you were to implement parseInt handling the radix argument.