Faits :
A.
A._ travaillait comme aide-ferblantier pour l'entreprise B._ et Cie. A ce titre, il était assuré obligatoirement contre le risque d'accident auprès de la Caisse nationale suisse d'assurance en cas d'accidents (ci-après: la CNA).
Le 16 février 2015, il a été victime d'une chute dans les escaliers sur son lieu de travail et s'est blessé au niveau du genou gauche. La CNA a pris en charge le cas. En septembre 2016, le nouvel employeur de l'assuré, C._ SA, a annoncé une rechute de l'accident du 16 février 2015, de sorte que la CNA a repris le versement des prestations d'assurance.
Par communication du 11 janvier 2018, la CNA a mis un terme au paiement des frais médicaux et au versement des indemnités journalières avec effet au 31 janvier 2018. Par décision du 7 février suivant, confirmée sur opposition le 23 novembre 2018, elle a nié le droit de l'assuré à une rente d'invalidité, au motif que le taux d'invalidité de 8 % était inférieur au seuil de 10 % ouvrant le droit à une telle prestation, et lui a alloué une indemnité pour atteinte à l'intégrité fondée sur un taux de 7,5 %.
B.
Par jugement du 14 novembre 2019, la Cour des assurances sociales du Tribunal cantonal du canton de Vaud a rejeté le recours formé par l'assuré contre la décision sur opposition du 23 novembre 2018.
C.
A._ interjette un recours en matière de droit public et un recours constitutionnel subsidiaire contre ce jugement, en concluant principalement à sa réforme dans le sens de la reconnaissance de son droit à une rente d'invalidité, et subsidiairement à son annulation suivie du renvoi de la cause à la juridiction cantonale pour nouveau jugement au sens des considérants.
L'intimée conclut au rejet du recours, tandis que la cour cantonale et l'Office fédéral de la santé publique ont renoncé à se déterminer.

Considérant en droit :
1.
Le recours est dirigé contre un arrêt final (<ref-law>), rendu dans une cause de droit public ne tombant pas sous le coup de l'une des exceptions prévues à l'<ref-law>, par une autorité supérieure de dernière instance cantonale (art. 86 al. 1 let. d et al. 2 LTF), de sorte que la voie du recours en matière de droit public est ouverte. Partant, en raison de son caractère subsidiaire, le recours constitutionnel n'est pas recevable (<ref-law>).
2.
2.1. Le litige porte sur le droit du recourant à une rente d'invalidité de l'assurance-accidents, singulièrement sur le revenu d'invalide déterminant pour la comparaison des revenus prescrite par l'<ref-law> (RS 830.1).
2.2. Lorsque la décision qui fait l'objet d'un recours concerne l'octroi ou le refus de prestations en espèces de l'assurance-accidents, comme c'est le cas en l'espèce, le Tribunal fédéral n'est pas lié par les faits établis par la juridiction précédente (<ref-law>).
3.
Le jugement entrepris expose de manière complète les dispositions légales et les principes jurisprudentiels relatifs aux conditions d'octroi d'une rente d'invalidité (<ref-law>), en particulier à la méthode générale de la comparaison des revenus pour évaluer le taux d'invalidité (<ref-law>; <ref-ruling> consid. 2.3 p. 593 s.; <ref-ruling> consid. 3.1.1 p. 337). Il suffit d'y renvoyer.
4.
4.1. Pour déterminer le revenu d'invalide, les juges cantonaux ont refusé de tenir compte du salaire perçu par le recourant alors qu'il était lié à une agence de placement par contrat de mission temporaire du 25 juin 2018, au motif que les rapports de travail n'étaient pas suffisamment stables. Ils ont également écarté un contrat de travail de durée indéterminée par lequel D._ SA avait engagé le recourant comme cariste dès le 1 er avril 2019, dès lors que ce contrat était postérieur à la décision attaquée. Aussi ont-ils considéré que l'intimée avait recouru à bon droit aux données salariales résultant des descriptions de postes de travail (DPT) et ont-ils confirmé le revenu d'invalide fixé dans sa décision sur opposition. La cour cantonale a par ailleurs relevé qu'un calcul du revenu d'invalide sur la base des données statistiques résultant de l'Enquête suisse sur la structure des salaires (ESS) ne serait pas non plus susceptible d'ouvrir le droit à une rente d'invalidité.
4.2. Se plaignant d'abord d'une violation de l'<ref-law>, le recourant reproche aux premiers juges d'avoir écarté le contrat de travail de durée indéterminée du 28 mars 2019 le liant à D._ SA. Il fait valoir en substance que la mission temporaire de durée indéterminée aurait débouché sur son engagement par D._ SA comme cariste et que cette activité ferait suite à des mesures de réadaptation professionnelle de l'assurance-invalidité. Il conviendrait donc de prendre en compte sa situation concrète plutôt que de se fonder sur les DPT. Se prévalant en outre de l'interdiction de l'arbitraire (art. 9 Cst.), le recourant soutient qu'en ne tenant pas compte du contrat du 28 mars 2019, lequel était de nature à démontrer la stabilité de ses rapports de travail, les premiers juges auraient commis un abus de leur pouvoir d'appréciation aboutissant à un résultat insoutenable, à savoir le refus d'octroi d'une rente d'invalidité.
5.
5.1. Le revenu d'invalide doit être évalué avant tout en fonction de la situation professionnelle concrète de l'assuré. Lorsque l'activité exercée après la survenance de l'atteinte à la santé repose sur des rapports de travail particulièrement stables, qu'elle met pleinement en valeur la capacité de travail résiduelle exigible et que le gain obtenu correspond au travail effectivement fourni et ne contient pas d'éléments de salaire social, c'est le revenu effectivement réalisé qui doit être pris en compte pour fixer le revenu d'invalide. En l'absence d'un revenu effectivement réalisé - soit lorsque la personne assurée, après la survenance de l'atteinte à la santé, n'a pas repris d'activité lucrative ou alors aucune activité normalement exigible -, le revenu d'invalide peut être évalué sur la base de salaires fondés sur les données statistiques résultant de l'ESS ou sur les données salariales résultant des DPT établies par la CNA (<ref-ruling> consid. 2.3 p. 593 s.; V 297 consid. 5.2 p. 301; <ref-ruling> consid. 4.2.1 p. 475).
5.2. Pour comparer les revenus déterminants, il convient en principe de se placer au moment de la naissance du droit (éventuel) à la rente d'invalidité (<ref-ruling> consid. 4.2 p. 223 s.). Selon l'<ref-law>, le droit à la rente prend naissance dès qu'il n'y a plus lieu d'attendre de la continuation du traitement médical une sensible amélioration de l'état de l'assuré et que les éventuelles mesures de réadaptation de l'assurance-invalidité ont été menées à terme.
L'assureur-accidents est cependant tenu, avant de se prononcer sur le droit à une telle prestation, d'examiner si aucune modification significative des données hypothétiques déterminantes n'est intervenue durant la période postérieure à l'ouverture du droit. Le cas échéant, il lui incombe de procéder à une nouvelle comparaison des revenus avant de rendre sa décision (<ref-ruling>). Autrement dit, pour procéder à la comparaison des revenus, il convient de se placer au moment de la naissance du droit à la rente en tenant compte des modifications susceptibles d'influencer le droit à la prestation qui sont survenues jusqu'au moment de la décision de l'assureur social (<ref-ruling>).
5.3. En l'espèce, le recourant a bénéficié de mesures d'intervention précoce de l'assurance-invalidité sous la forme d'une prise en charge d'une formation de cariste, laquelle s'est déroulée du 24 au 25 mai 2018 (communication de l'Office de l'assurance-invalidité pour le canton de Vaud [ci-après: l'office AI] du 15 mai 2018). Constatant que l'intéressé avait retrouvé un emploi comme cariste à 100 % depuis le 3 juillet 2018, l'office AI a considéré que des mesures de réadaptation d'ordre professionnel n'étaient pas envisageables en l'état (communication du 18 juillet 2018). Il s'ensuit que l'activité de cariste exercée par le recourant ne résulte pas de mesures de réadaptation au sens des <ref-law> mais uniquement d'une mesure d'intervention précoce (cf. <ref-law>). Aussi le cours de formation pris en charge par l'assurance-invalidité n'avait-il pas pour but de maintenir ou d'améliorer la capacité de gain du recourant ou sa capacité d'accomplir ses travaux habituels (cf. <ref-law>), mais de permettre sa réadaptation à un nouveau poste au sein de la même entreprise ou ailleurs, conformément à l'<ref-law>. Partant, on ne saurait considérer d'emblée que l'activité de cariste mettrait pleinement en valeur la capacité de travail résiduelle exigible de la part du recourant.
En outre, il ne peut pas être reproché aux premiers juges d'avoir retenu que la condition afférente à la stabilité des rapports de travail posée par la jurisprudence n'était pas remplie dans la mesure où, au moment de la décision sur opposition, le recourant était uniquement au bénéfice d'un contrat de mission auprès d'une agence de placement. En effet, ce type d'agence a pour vocation de mettre du personnel à disposition des entreprises selon des modalités qui peuvent fortement varier en fonction des besoins de ces dernières (cf. arrêt U 196/02 du 23 janvier 2003 consid. 4.4). Le fait que la mission temporaire était de durée indéterminée n'y change rien en l'espèce. Enfin, conformément à la jurisprudence susmentionnée (cf. consid. 5.2 supra) - qui n'est du reste pas discutée par le recourant -, il ne peut pas être tenu compte, pour la comparaison des revenus, de circonstances postérieures à la décision sur opposition de l'intimée, de sorte que la cour cantonale était fondée à écarter le salaire prévu dans le contrat de travail du 28 mars 2019.
5.4. Il résulte de ce qui précède que c'est à bon droit que la juridiction cantonale a arrêté le revenu d'invalide en se référant aux DPT sélectionnées par la CNA et, par une argumentation subsidiaire, aux salaires statistiques résultant de l'ESS, ce qui conduit au rejet du recours.
6.
Le recourant, qui succombe, supportera les frais judiciaires (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours constitutionnel subsidiaire est irrecevable.
2.
Le recours en matière de droit public est rejeté.
3.
Les frais judiciaires, arrêtés à 800 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties, à la Cour des assurances sociales du Tribunal cantonal du canton de Vaud et à l'Office fédéral de la santé publique.
Lucerne, le 16 septembre 2020
Au nom de la Ire Cour de droit social
du Tribunal fédéral suisse
Le Président : Maillard
La Greffière : Castella