Earlier quoted context omitted.
In my experience, companies say 3-5 years but this requirement is written by someone in HR translating what the hiring manager said. The hiring manager is more likely to hire someone who has less than 3-5 years of experience, or even hire someone with zero experience, as long as the candidate demonstrates aptitude. The trick is to write your resume so it gets past HR's filter, but without putting bullshit on it. It's…
> The trick is to write your resume so it gets past HR's filter Any tips on how to do that?
The hiring manager will then make sure that your skill set is a good addition to the team.
Keep in mind that the hiring manager may have asked for someone "with some JavaScript experience" and HR might have translated that into "3+ years". In some cases, when the hiring manager sees the job posting, they're surprised by the requirements and say, "So, this is why we haven't been getting any applicants!" This is, yes, somewhat dysfunctional but it is a common dysfunction. Yes, you are essentially second-guessing the job listing and this is not the way the world should work.
As a rule of thumb, if you are applying to a job and you meet all of the listed requirements as written, you are overqualified and should apply to a higher level position.