Code-switching is a linguistic phenomenon where speakers alternate between two or more languages in a single conversation to enhance communication. Initially viewed negatively, code-switching is now recognized as a natural and increasing practice, with various types including tag switching and intra-sentential switching. It serves various purposes, such as addressing fluency issues, marking formal versus informal contexts, and expressing emotions.