When I work on some physical problem I needed to know how to get all of first 100 roots of BesselJ[n,x] function -which is a quasi periodic function-, as a List. I tried this code:
FindRoot[BesselJ[0, x], {x, {2, 5, 8, 11, 14}}]
{x -> {2.40483, 5.52008, 8.65373, 11.7915, 14.9309}}
but it's so terrible because you need firstly to know the approximation root as argument, and it'll give you the exact root.
I ask if there any other direct methods.
Update from comment:
Yeah [there is BesselJZero[],] but I want to know what is the code inside this BesselJZero[]. I mean how I can construct it by myself?
[Edit notice: I (Michael E2) discovered the answer to this question, which now sits in a comment. I'd be happy to post the comment as an answer if the community thinks this question should be reopened.]


BesselJZero[]? There's a link to it near the bottom of the doc page forBesselJunder "See Also". – Michael E2 Jun 28 '18 at 22:00BesselJZero[]i mean how i can construct it by myself ? – El-Mo Jun 28 '18 at 22:11BesselJZero, which suggest they might use "use series and asymptotic expansions." – Michael E2 Jun 28 '18 at 22:48FindRootwith starting values determined by the (asymptotic) WKB approximation to find the roots - giving an improved version ofBesselJYJYZeros. – Jens Jun 29 '18 at 02:50BesselJZerowas introduced in V6, there was a packageNumericalMath`BesselZeros`, available here, that contains code forBesselJZero. I don't know if it is the same as the current implementation. It cites Abramovitz & Stegun 9.5.12, which is the same as DLMF 10.21.19. You can inspect the code yourself. The main function isbz[], which handles the zeros of both the $J$ and the $Y$ functions. – Michael E2 Jun 29 '18 at 17:31