Implementing Stacks & Queues

What common stack application is implemented by this function?
function isBalanced(expression) {
  const stack = [];
  const pairs = { '(': ')', '[': ']', '{': '}' };
  
  for (let char of expression) {
    if (char in pairs) {
      stack.push(char);
    } else if (Object.values(pairs).includes(char)) {
      if (pairs[stack.pop()] !== char) return false;
    }
  }
  
  return stack.length === 0;
}
Next Question (12/20)