Warum argumentiert JSHint gegen bitweise Operatoren? Wie soll ich diesen Code ausdrücken?
Ich bin mit diesem etwas JavaScript zum generieren einer UID:
(original:)
//If ID has not been defined then generate a new unique ID.
if(!id){
id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
}
(formatiert, damit es gelesen werden kann:)
//If ID has not been defined then generate a new unique ID.
if (!id) {
id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(
/[xy]/g,
function (c) {
var r = Math.random() * 16 | 0,
v = c == 'x' ? r : (r & 0x3 | 0x8);
return v.toString(16);
}
);
}
JSHint nicht wie die Verwendung der bitweisen ODER-und UND-Operatoren. Ich Frage mich, wie könnte ich diese umschreiben um mehr 'standard freundlich.'
EDIT: JSHint Staaten:
Line 8: id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
Unexpected use of '|'.
Line 8: id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
Expected '===' and instead saw '=='.
Line 8: id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
Unexpected use of '&'.
Line 8: id = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8); return v.toString(16); });
Unexpected use of '|'.
InformationsquelleAutor der Frage Sean Anderson | 2012-07-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen
in der Spitze der Datei
Eine Liste der verfügbaren Optionen: http://jshint.com/docs/options/
InformationsquelleAutor der Antwort zerkms
Laut JSHint docses ist, weil
Wie andere erwähnt haben, können Sie deaktivieren die
bitwise
JSHint option, um die squelch-Warnungen.InformationsquelleAutor der Antwort eczajk
Du hast eingeklemmt, so viel code in eine Zeile (warum??) Sie können nicht sagen, was jshint ist und wies auf Sie. Ich habe neu formatiert den code, und ich sehe das:
Was ist der
| 0
es tun? Es ist ein unnötiges no-op. UPDATE: scheint ein Weg zu sein, um int-ify einem Schwimmer.Jshint scheint nicht wie andere Dinge, aber zumindest loszuwerden, diese. Und verbreiten Sie Ihren code so, dass Sie (und andere) es Lesen kann.
InformationsquelleAutor der Antwort Ned Batchelder
Über das "Warum streiten bitweise Operatoren". Ich mag diese aus TSLint docs
InformationsquelleAutor der Antwort Jaime
dies funktioniert gut für mich:
InformationsquelleAutor der Antwort Тимур Аппаев