Kom ihåg mig?
Home Menu

Menu


Gratis SSL-certifikat från let's encrypt

 
Ämnesverktyg Visningsalternativ
Oläst 2016-08-23, 12:58 #1
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
jayzee jayzee är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Aug 2008
Inlägg: 1 089
Kanske dags att starta egen tråd om ECMAscript best practices?
jayzee är inte uppkopplad   Svara med citatSvara med citat
Oläst 2016-08-23, 20:20 #2
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Citat:
Ursprungligen postat av webtigerteam Visa inlägg
Moduler cachas i NodeJS. Och lokala variabler går ofta lite fortare att hämta! Men även om det gjorde koden segare så är det onödigt att optimera utan att mäta först!




Det bästa är if(foo === undefined || foo === null)

Det näst bästa är if(foo == undefined)

Men det sämsta är if(!foo) för att det finns för många "false-positive", det skulle även trigga false, noll, strängen noll, tom sträng, tom array, eller array med noll, vilket ibland är ett godtagbart värde.

Du har rätt i att undefined ofta tyder på en bugg ...

Ta följande kod som exempel:

Kod:
function test(a, b) {
	console.log(a + b);
}
test(1);
Lintern klagar på följande:

1:1 - Expected a function expression.
1:1 - Missing JSDoc comment.
1:1 - Use the global form of 'use strict'.
1:14 - Missing space before function parentheses.
1:15 - Identifier name 'a' is too short (< 2).
1:18 - Identifier name 'b' is too short (< 2).
1:21 - Block must be padded by blank lines.
2:2 - Expected indentation of 4 space characters but found 0.
2:2 - Unexpected console statement.
3:1 - Block must be padded by blank lines.
4:2 - Newline required at end of file but not found.
4:6 - No magic number: 1. (no-magic-numbers)


OMG! 12 fel!! Bäst att fixa dem ...


Kod:
"use strict";

var ett = 1;

/**
 * Plussa två tal
 * @param {number} tal1 - Första talet.
 * @param {number} tal2 - Andra talet.
 * @returns {number} Summan av de två talen
 */
var test = function test (tal1, tal2) {

    return tal1 + tal2;
	
};

test(ett);

Men ända felet med första koden är att vi hade glömt andra argumentet (b), vilket är en ganska vanlig orsak till buggar. Felet kvarstår dock efter att vi fixat alla "fel" som Lintern hittade.

Här har du ett exempel på varför jag jämför med undefined:

Kod:
if(arg1 == undefined) throw new Error("arg1=" + arg1 + " saknas!")

Jag rekommenderar denna video: https://www.youtube.com/watch?v=wf-BqAjZb8M (Raymond Hettinger - Beyond PEP 8 -- Best practices for beautiful intelligible code - PyCon 2015)
Så vilken slutsats drar du från ovanstående inlägg och varför?

Citat:
Ursprungligen postat av jayzee Visa inlägg
Kanske dags att starta egen tråd om ECMAscript best practices?
De hade varit bra. Om någon moderator vill bryta ut våra inlägg så vore de toppen. Är dock osäker på titeln då ämnet är ganska brett.
Nerix är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:15.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017