Difference between the ^ and ~ in package.json

^ vs ~
If you’ve ever looked at a package.json and wondered:
⛶"lodash": "^4.17.21"…or maybe:
⛶"express": "~4.18.2"And thought what’s with the hat and the squiggly line?, you’re no...