Pensez au problème JAVA = JAVAscript (nécessaire à l'avenir)

Objectif de cet article

Indique que JAVA = script JAVA. Pour le moment, j'ai également ajouté un commentaire sérieux à la fin. Puisqu'il y a eu des erreurs, j'ai également ajouté des excuses à la fin.

code

Collez le même code deux fois.

/*
<script>
var System = {out: {println: function(e){console.log(e);document.getElementsByTagName('body')[0].innerHTML=e;}}};
window.onload = function() {
    eval(document.getElementById('code').innerHTML.replace(/[*]/g, '/').replace(/(public|static|void|String\[\] args)/g, ''));
}
</script>
<div id="code">
*/
class Main {
    public static void main(String[] args) {
        System.out.println("Hello, world!");
    }
}
/*
new Main().main();
</div>
*/
/*
<script>
var System = {out: {println: function(e){console.log(e);document.getElementsByTagName('body')[0].innerHTML=e;}}};
window.onload = function() {
	eval(document.getElementById('code').innerHTML.replace(/[*]/g, '/').replace(/(public|static|void|String\[\] args)/g, ''));
}
</script>
<div id="code">
*/
class Main {
	public static void main(String[] args) {
		System.out.println("Hello, world!");
	}
}
/*
new Main().main();
</div>
*/

Exécuter avec JAVA

Pour être honnête, il peut être exécuté en le collant sur un site appelé paiza. Bouge toi! Bonjour le monde! Hou la la!

Exécuter avec le script JAVA

Enregistrez le code ci-dessus sous ** html **, double-cliquez dessus, etc. pour l'ouvrir dans un navigateur approprié. L'environnement vérifié était chrome. Bonjour le monde! Hou la la!

Peut-être que certains écrans de navigateur ont des chaînes étranges, mais le vrai homme s'en fiche. Si vous utilisez certains navigateurs, jetez un œil aux outils de développement. Bonjour le monde! Hou la la!

poème

Pour un vrai homme, il va de soi que JAVA = script JAVA. Il y a des choses comme les scripts JAVA et JAVA qui sont différents, mais cela ne fonctionne pas dans la nature sauvage du Mexique. Celui qui ne comprend pas c'est bien au début, mais finalement il s'effondre dans le vent du Mexique qui souffle dans la section des commentaires, se réconforte avec Babe qu'il a rencontré au bar, se saoule avec les plaisirs du moment, donne naissance à un enfant, et dit: «Rien d'intéressant. C'était une vie sans épée », murmura-t-il au bar ... et finalement il mourut de vieillesse. LA FIN DU MEXIQUE .... Mais si vous avez toujours un véritable esprit pionnier, c'est une autre histoire. Il n'est pas trop tard maintenant. Faites JAVA = script JAVA.

C'est un mensonge

Java et JavaScript sont différents. Je suis désolé. Pourquoi certaines personnes prétendent-elles qu'elles sont différentes mais identiques? Quant au fond https://qiita.com/pik/items/1c95d69debee4aedffea Est détaillé.

Un petit commentaire

Java et JavaScript sont des langages similaires car le format des commentaires est dérivé de C, mais d'un autre côté, le comportement des mots réservés est différent. En particulier, la manipulation lors du placement de jetons uniquement dans des espaces est médiocre. Donc, j'ai pensé qu'il serait impossible d'écrire du code qui fonctionnerait dans les deux sens d'une manière simple, alors j'ai commencé à faire quelque chose de mal.

commentaire

Tout d'abord, en utilisant HTML, nous créons une zone où les commentaires sont faits en Java mais pas en JS. Dans le monde Java, cela vous permet de traiter tout le code JavaScript comme des commentaires. Comme Java n'a pas de macros, il est un peu difficile de réécrire dynamiquement le code au moment de l'exécution, donc à l'exception des commentaires, cela devrait être du code normal pour Java.

Réécriture et évaluation du code

Comme mentionné ci-dessus, il y a beaucoup de mots réservés qui gênent de manière naïve, alors réécrivez le code. La clé est d'évaluer et de remplacer.

eval

eval est quelque chose qui ne doit pas être fait en termes de performances ou de sécurité, et évalue une chaîne de caractères comme du code JavaScript.

replace

Puisque la séparation entre le mot réservé et le commentaire est un obstacle, remplacez-le par une expression régulière. À part les mots réservés, certains d'entre eux sont gênants, je vais donc les effacer.

un point

En fait, il n'est pas impossible de mettre php dans ce code, par exemple, mais j'ai pensé que ce serait un peu ennuyeux de ne sortir que Hello, world!

excuses

Partie 1

Je copiais et la source Java était obsolète. fixé. Je suis désolé.

Partie 2

Il était bon de remplacer une fois comme suit. Je suis désolé.

édition révisée


/*
<script>
var System = {out: {println: function(e){console.log(e);document.getElementsByTagName('body')[0].innerHTML=e;}}};
window.onload = function() {
    eval(document.getElementById('code').innerHTML.replace(/[*]/g, '/'));
}
</script>
<div id="code">
*/
class Main {
    /**/ public static void
    main(
        /**/ String[] args
    ) {
        System.out.println("Hello, world!");
    }
}
/*
new Main().main();
</div>
*/

C'est tout!

Recommended Posts

Pensez au problème JAVA = JAVAscript (nécessaire à l'avenir)
Pensez aux différences entre les fonctions et les méthodes (en Java)
À propos de la confusion observée dans les serveurs Java de démarrage
À propos de l'idée des classes anonymes en Java
Une histoire sur le JDK à l'ère de Java 11
À propos du problème de blocage dans le traitement parallèle dans la version 4.0 de gem'sprockets
Découvrez les spécifications tout en raccourcissant FizzBuzz écrit en Java
[Pour les débutants] À propos de la syntaxe JavaScript expliquée par Java Gold
Accéder à l'interface réseau avec Java
Devinez le code de caractère en Java
Passer les paramètres régionaux i18n à JavaScript
À propos du symbole <%%> dans Rails erb
Spécifiez l'emplacement Java dans eclipse.ini
Java, JavaScript, C # (différence d'affectation)
Décompressez le fichier zip en Java
À propos de l'environnement de développement actuel (Java 8)
Analyser l'analyse syntaxique de l'API COTOHA en Java
Pensez aux 7 règles d'Optionnel
À propos de l'environnement Eclipse (Java, Liberty, JavaScript)
A propos du traitement de la copie de fichiers en Java
La route de JavaScript à Java
Appelez la super méthode en Java
[Java] java.lang.NoClassDefFoundError: Résolution du problème de chute dans org / jsoup / safety / Whitelist
À propos du phénomène que StackOverflowError se produit lors du traitement à l'aide d'expressions régulières Java
A propos du renvoi d'une référence dans un Java Getter
Obtenez le résultat de POST en Java
Devinez le cadre de persistance Java 2017 (3) Reladomo
Référence Java à comprendre dans la figure
Appel de méthodes Java à partir de JavaScript exécutées en Java
Essayez d'utiliser l'API Stream en Java
Appelez l'API de notification Windows en Java
À propos de la procédure pour que Java fonctionne
[Création] Un mémorandum sur le codage en Java
À propos du nouveau modèle de version de Java @ Seki Java (20/07/2018)
J'ai essayé le nouveau yuan à Java
Organisation des notes dans la tête (Java-Arrangement)
Essayez d'appeler le service CORBA sur Java 11+
Utilisez "Rhino" qui exécute JavaScript en Java
À propos des enregistrements ajoutés pour l'aperçu dans Java JDK 14
Quelle est la méthode principale en Java?
Comment obtenir la date avec Java
Discussion continue sur l'écriture de Java avec Emacs @ 2018
À propos du nombre de threads de Completable Future
L'histoire de l'écriture de Java dans Emacs
Entrée de la console en Java (comprendre le mécanisme)
Java vs JavaScript: quelle est la différence?
Passez simplement Masakari aux "langages de programmation qui seront nécessaires à l'avenir"
Impressions et doutes sur l'utilisation de Java pour la première fois dans Android Studio
À propos de la signification des variables de type, E, T, etc. utilisées dans les génériques utilisés en Java
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
L'histoire de la fabrication d'un Othello ordinaire à Java
A propos de l'ordre de description des propriétés système Java
ChatWork4j pour l'utilisation de l'API ChatWork en Java
Mémo organisé dans la tête (syntaxe Java --Control)
Essayez de gratter environ 30 lignes en Java (sortie CSV)
Le type d'intersection introduit dans Java 10 est incroyable (?)
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
À propos de var utilisé en Java (type de variable locale)