Le document qui suit est un journal des modifications concernant JavaScript entre les versions de Netscape Navigator 4.0 et 4.5. L'ancienne documentation de Netscape peut être consultée sur archive.org. Netscape Navigator 4.5 est sorti le 19 octobre 1998.
Le changement le plus important concernant JavaScript 1.3 fut la conformité avec ECMA-262 et Unicode grâce au retrait des incohérences entre JavaScript 1.2 et le nouveau standard ECMA (publié en juin 1997). Certaines fonctionnalités supplémentaires de la version 1.2, non définies par ECMA-262, furent conservées dans le langage JavaScript (voir ci-après la liste des différences).
Versions de JavaScript
Netscape Communicator et Navigator 4.06 et 4.5 exécutent les versions de JavaScript inférieures ou égales à 1.3. Les versions de Communicator et Navigator 4.0-4.05 et inférieures ignoraient les scripts dont l'attribut LANGUAGE avait la valeur "JavaScript1.3" ou supérieur.
<SCRIPT LANGUAGE="JavaScript1.2"> <!-- JavaScript pour Navigator 4.0. --> <SCRIPT LANGUAGE="JavaScript1.3"> <!-- JavaScript pour Navigator 4.5. -->
Nouvelles fonctionnalités de JavaScript 1.3
Nouveaux objets globaux
Nouvelles méthodes
isFinite()
Function.prototype.call()
Function.prototype.apply()
Date.UTC()
Date.prototype.getFullYear()
Date.prototype.setFullYear()
Date.prototype.getMilliseconds()
Date.prototype.setMilliseconds()
Date.prototype.getUTCFullYear()
Date.prototype.getUTCMonth()
Date.prototype.getUTCDate()
Date.prototype.getUTCHours()
Date.prototype.getUTCMinutes()
Date.prototype.getUTCSeconds()
Date.prototype.getUTCMilliseconds()
Date.prototype.toUTCString()
Date.prototype.setUTCFullYear()
Date.prototype.setUTCMonth()
Date.prototype.setUTCDate()
Date.prototype.setUTCHours()
Date.prototype.setUTCMinutes()
Date.prototype.setUTCSeconds()
Date.prototype.setUTCMilliseconds()
Nouvelles fonctionnalités supplémentaires
- Opérateurs d'égalité stricte
- Support d'Unicode
- Une console JavaScript a été introduite
Les fonctionnalités modifiées avec JavaScript 1.3
- Modifications à l'objet
Date
pour qu'il soit conforme avec ECMA-262- Nouveau constructeur
Date(year, month, day, [,hours [, minutes [, seconds [, milliseconds ]]]])
- Arguments supplémentaires pour les méthodes
setMonth(month[, date])
setHours(hours[, min[, sec[, ms]]])
setMinutes(min[, sec[, ms]])
setSeconds(sec[, ms])
- Nouveau constructeur
- La longueur d'un tableau (la propriété
length
) est désormais un entier non signé sur 32 bits. Array.prototype.push()
: avec JavaScript 1.2, la méthodepush
renvoyait le dernier élément ajouté au tableau. Avec JavaScript 1.3,push
renvoie la nouvelle longueur.Array.prototype.splice()
: Avec JavaScript 1.2, la méthodesplice
renvoyait l'élément supprimé si un seul élément était supprimé (le paramètrehowMany
valait1
). Avec JavaScript 1.3,splice
renvoie toujours un tableau avec les éléments retirés. Si un seul élément est retiré, un tableau constitué d'un seul élément sera renvoyé.- Modifications apportées à
String.prototype.replace()
. - Modifications apportées à l'objet
Boolean
. - Modifications apportées à la méthode
toString()
.
Les fonctionnalités de JavaScript 1.3 hors d'ECMA-262
Les listes qui suivent comparent la version d'ECMA-262 avant juin 1998 et JavaScript 1.3. Les fonctionnalités qui suivent ne faisaient pas parties du standard mais furent implémentées avec JavaScript 1.3.
Les opérateurs et mots-clés
- Les opérateurs d'égalité stricte
- La tabulation verticale (
\v
ou\u000B
) en tant que séquence d'échappement
Les instructions
Les objets natifs
Les méthodes d'objets natifs
toSource()
Object.prototype.watch()
Object.prototype.unwatch()
Function.arity
Function.prototype.apply()
Function.prototype.call()
Array.prototype.concat()
Array.prototype.pop()
Array.prototype.push()
Array.prototype.shift()
Array.prototype.slice()
Array.prototype.splice()
String.prototype.concat()
String.prototype.concat()
String.prototype.match()
String.prototype.search()
String.prototype.slice()
String.prototype.substr()