Javascript "ReferenceError: Hex is not defined"?

4 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet

Weil JavaScript nunmal nicht Java ist... Du kannst (bis auf ein paar Sonderfälle) in JavaScript keine Java-Klassen verwenden. (Wobei mir auch keine Standard-Java-Klasse namens "Hex" bekannt wäre, müsst ich ggf. mal in der Dokumentation nachlesen...)

In JS sähe das eher so aus:

function random_string(){
    let result = new Array();
    for(let i = 0; i < 16; ++i){
        let dec = Math.floor(Math.random() * 255);
        let hex = dec.toString(16);
        if(hex.length() == 1) hex = '0' + hex;
        result.push(hex);
    }
    return result.join('');
}
Warum geht das nicht??

Hex ist in der Tat nicht definiert.

Du hast hier vermutlich Java und JavaScript erheblich durcheinander gebracht.

Der Codeschnipsel stammt offensichtlich aus der java.security.* Bibliothek.

Schau mal hier, Vielleicht kommt das für JavaScript näher:

https://codepen.io/code_monk/pen/FvpfI

Woher ich das weiß:Berufserfahrung – Web Developer bei einem mittelständischen Portalbetreiber

Wo soll Hex denn herkommen? Natives JS ist es auf jeden Fall nicht. Wenn du das aus dem Internet hast fehlen wahrscheinlich irgendwelche Librarys.

Es gibt eine Methode mit der gleichen Signatur in Java aus der Apache Commens Library. Und auch der Rest scheint eher Java zu sein und nicht JS. Mit JavaScript hat das nichts zu tun.

Weil Hex nicht defined is. Das ist eine nicht Standard Klasse, da musst du erst die Library einbauen.

Woher ich das weiß:Berufserfahrung – 20 Jahre Berufserfahrung

Jaronmechner 
Beitragsersteller
 03.03.2020, 19:20

wo bekommt man die

0
Jaronmechner 
Beitragsersteller
 03.03.2020, 19:29
@MonkeyKing

finds gerade nicht mehr... aber gibt es denn die java libaries für javascript??

0
MonkeyKing  03.03.2020, 19:30
@Jaronmechner

Nein Java und Javascript sind zwei völlig unterschiedliche Programmiersprachen. Nur im Namen ähneln sie sich. Was genau willst du denn machen?

0