HTML

Perl, jQuery és minden ami webfejlesztés MAGYARUL

Sziasztok! Ezen a blogon a perl nyelvről, a perlben íródott Catalyst MVC keretrendszerről és jQuery-ről lesz szó, tehát mindenről ami ma egy webfejlesztőt érdekelhet ( tutoriálok, újdonságok a nagyvilágból ).

Friss topikok

Linkblog

2011.01.27. 01:42 oroce

Szám-e az adott érték?

Címkék: javascript performance teljesítmény jquery jqueryui

Egy pár napja túrtam a jQueryUI forráskódját, mert a dialoghoz hasonló dolgot szerettem volna varázsolni, és következő kifejezésre lettem figyelmes a 9377. sorban: ( nem, az egy darab pluszjel nem typo! )

if (+myAt[i] === myAt[i])

egy pár percig néztem WTF fejjel, körbekérdezgettem a kollégákat, hogy láttak-e már ilyet, majd miután mindenkitől nemleges választ kaptam, elkezdtem utána járni a dolognak.

 

var a = 1,     
    b = 'alma';
console.log( +a ); // === 1
console.log( +a === a ); //true
console.log( +b ); // NaN
console.log( +b === b ); //false 

 

 

jsfiddle

Tehát a + jellel a változónkat megpróbáljuk  számmá parse-olni, és ha ez sikerül akkor meg fog egyezni az eredeti értékével, ha nem sikerül akkor pedig nem fog megegyezni. Miután ezt megtudtam óriási lelkendezésbe kezdtem.

De nem hagyott a gondolat nyugodni, hogy miért így ellenőrzi a jQueryUI, hogy szám-e az adott érték, miért nem használja minderre az isNaN függvényt?! 
(Megjegyzés: az isNaN("13") kifejezésre false-zal tér vissza, magyarul számként értelmezi, míg a ' var a = "13"; console.log( +a === a );' szintén false lesz, de itt ez azt jelenti, hogy az "a" változót nem sikerült számmá alakítani)

Ezek után írtam egyszerű tesztet, hogy lássam a jQueryUI vagy az isNaN megoldás a gyorsabb: jsperf.com/a-a-or-isnan
Jelenleg még csak 4 böngészőverzión teszteltem, és eddig tisztán látszik, hogy számoknál a jQueryUI-s megoldás gyorsabb, míg stringnél Chrome 10-ben és FF3.6-ban az isNaN, FF4b10-ben és Opera11-ben a másik megoldás volt a gyorsabb. (Alig várom, hogy Windowson és Macen is kipróbálhassam :) )
 

1 komment

A bejegyzés trackback címe:

https://pquery.blog.hu/api/trackback/id/tr782617088

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

süti beállítások módosítása