The familiar `normal` (400) and `bold` (700) keywords are shorthand for numeric values from 100 to 900. If a font lacks a real glyph for a given weight, the browser substitutes the closest available one, or — worst case — synthesizes bold by artificially thickening strokes, which degrades letterform quality and is best avoided.
Weight is the cheapest tool for building hierarchy. It distinguishes headings and emphasis without growing font size, and in small UI text a weight change disturbs layout far less than a size change does.
Loading a separate file per weight (Regular, Medium, Bold…) multiplies requests and bytes. Limiting the weights actually used to two or three — or replacing several files with one variable font — keeps this in check.
When to use
Decide on 2–3 weights the project actually uses (e.g. 400/600/800) and treat any other value as off-limits — this keeps the type system consistent.