Je regardais juste du code d'il y a quelques jours et j'ai remarqué cet extrait:

function getTextWidth(text, font) {

    http: //stackoverflow.com/a/21015393/1413853

        var canvas = getTextWidth.canvas || (getTextWidth.canvas = document
            .createElement("canvas"));
    var context = canvas.getContext("2d");
    context.font = font;
    var metrics = context.measureText(text);
    return metrics.width;
}

Remarquez la ligne:

http: //stackoverflow.com/a/21015393/1413853

Ce qui devrait en fait être commenté:

// http://stackoverflow.com/a/21015393/1413853

J'aurais pensé qu'il s'agissait d'une syntaxe JS invalide, mais elle se compile et fonctionne correctement dans Chrome.

Est-ce vraiment destiné à être utilisé pour quelque chose, ou Chrome est-il simplement indulgent?

J'ai remarqué que cela fonctionne aussi:

function getTextWidth(text, font) {

    a: 
    b: 
    c: 

    return 1
}
2
Eddie Fletcher 17 janv. 2017 à 03:34

2 réponses

Meilleure réponse

À partir de la documentation sur étiquette MDN

L'instruction étiquetée peut être utilisée avec des instructions break ou continue. Il préfixe une déclaration avec un identifiant auquel vous pouvez vous référer.

Donc http: est une étiquette - le reste est un commentaire - syntaxe javascript parfaitement valide

3
Jaromanda X 17 janv. 2017 à 00:38

C'est une étiquette (Page MDN).

Javascript: vous donner tous les pistolets dont vous pourriez rêver!

2
GregL 17 janv. 2017 à 00:37