« Java | Main | Music & Film »
Mon, Dec 04, 2006
ppk on iCab
 Peter-Paul Koch wrote a book on JavaScript that was published some weeks ago.
It's good reading about developing compatible and standards-compliant JavaScript-based web applications that target different browsers.
Peter-Paul Koch wrote a book on JavaScript that was published some weeks ago.
It's good reading about developing compatible and standards-compliant JavaScript-based web applications that target different browsers.
Happily, it's one of the few JavaScript books that mention iCab. There's even a screenshot of iCab's "Identity" preferences in the section about browser detection (this section explains why browser sniffing never did and never will work correctly).
Sun, Oct 09, 2005
for..in vs. for each
JavaScript features for..in loops (enumerations) for a long time now. You can use it to easily enumerate all property names of an object. E4X (ECMAScript for XML, ECMA-357) specifies "for each" loops that enumerate the property values instead. So, where's the difference?
Consider the object
      var obj = { lastName: "Much", firstName: "Thomas" };
    
The for..in loop
      for (var i in obj) document.writeln(i + "<br>");
    
would yield
      lastName
    
firstName
whereas the for each loop
      for each (var i in obj) document.writeln(i + "<br>");
    
would display
      Much
    
Thomas
To achieve the latter with a for..in loop, you'd have to write
      for (var i in obj) document.writeln(obj[i] + "<br>");
    
JavaScript 1.6 - Array and String generics
The new JavaScript version in Firefox 1.5 introduces "generic" String and Array functions that can be applied on any object by simply calling the function on the String or Array constructor and passing the desired object as the first parameter. Since I could not find a list of all generic functions, I digged through the source code. Here's the result:
- 
        Array:
 concat, every, filter, forEach, indexOf, join, lastIndexOf, map, pop, push, reverse, shift, slice, some, sort, splice, unshift
- 
        String:
 charAt, charCodeAt, concat, indexOf, lastIndexOf, localeCompare, match, quote, replace, search, slice, split, substr, substring, toLocaleLowerCase, toLocaleUpperCase, toLowerCase, toUpperCase
JavaScript 1.6 - Array extras
Firefox 1.5 comes with a new JavaScript version 1.6 that brings us some new Array functions.
As of release 182, InScript supports these new functions, too (check <inscript:settings()> to see if your iCab is built with a suitable InScript version). This release also has support for E4X's (ECMAScript for XML, ECMA-357) "for each" loops.
Edited on: Sun, Oct 09, 2005 20:30
Categories: Browsers, iCab & InScript, JavaScript