Índex
Miguel A. Almarza
Departament d'Informàtica
IES Mare de Deu de la Mercè

 
 
Capítol 3.

Els objectes en JavaScript

  1. Programació amb objectes en JavaScript
  2. Creació dels nostres objectes
    1. Inizcialització d'objectes
    2. Constructors d'objectes
    3. Mètodes dels objectes
    4. Herència
    5. Altres utilitats
  3. Objectes predefinits del nucli del llenguatge JavaScript
    1. Objecte Array
    2. Objecte Boolean
    3. Objecte Date
    4. Objecte Function
    5. Objecte Math
    6. Objecte Number
    7. Objecte RegExp
    8. Objecte String
  4. Objectes del navegador
  5. El events de JavaScript


3.1 Programació amb objectes en JavaScript

En JavaScript hi ha implementada la programació amb objectes. No li diem programació dirigida a objectes per que JavaScript no té totes les funcionalitats d'aquest tipus de programació, per si que en té una bona part.
 

Diferents tipus d'objectes

3.2 Creació dels nostres objectes

Un objecte JavaScript té un identificador, unes propietats i uns mètodes (funcions) associats.

Si tenim ja creat un objecte miCotxe amb les propietats Marca, Model i Any podem accedir a aquestes propietats de la manera següent:

miCotxe.Marca="Seat"
miCotxe.Model="Ibiza"
miCotxe.Any="2000"

En realitat les propietats d'un objecte són un vector de valors amb un nom de variable associat. De fet un array i un objecte en JavaScript són diferents interfaces per a una mateixa estructura interna de dades.

Així que podem accedir a les dades d'un objecte de la mateixa manera que a les de un vector.

Si volem veure en el navegador el valor de les propietats de miCotxe podem escriure

document.write(miCotxe["Marca"]);
document.write(miCotxe["Model"]);
document.write(miCotxe["Any"]);

A l'exemple següent veiem com podem fer ús de les propietats de l'objecte miCotxe per tal d'accedir als seus valors.

Exemples d'objecte Visualització per pantalla 
<script>
   function Cotxe(Marca, Model, Any)
   {
      this.Marca=Marca || "";
      this.Model=Model || "";
      this.Any=Any || "";
   }

   miCotxe = new Cotxe();

   miCotxe.Marca="Seat";
   miCotxe.Model="Ibiza"
   miCotxe.Any="2000";

   document.write(miCotxe["Marca"],"<br>");
   document.write(miCotxe["Model"],"<br>");
   document.write(miCotxe["Any"],"<br>");

   function MostraPropietats(Objecte, NomObjecte)
   {
      var Cadena
      for (var PropietatI in Objecte)
      {
         Cadena = NomObjecte +"." + PropietatI + " = " +
         Objecte[PropietatI] + "<br>";
         document.write(Cadena);
      }
   }

   MostraPropietats(miCotxe,"miCotxe");
</script>

3.2.1 Inizcialització d'objectes

Hi ha dues maneres de crear un objecte. Aquest paràgraf descriu com fer-ho mitjançant l'objecte inicialitzador.

Mitjançant la següent instrucció creem l'objecte Disquete1 amb les propietats Color i Títol que tenen els valors Vermell i Ús diari:

Disquete1 = {Color : "Vermell", Titol:"Us diari"};

És evident que entre les claus podem posar una llista de propietats i valors que assignem. Entre els elements de la llista podem afegir la creació d'un nou objecte i així creem un arbre d'objectes.

A la declaració següent fem l'objecte Disquete2 que té com a propietat l'objecte Característiques amb les propietats Capacitat i Mida.

Disquete2 = {Color:"Vermell", Titol:"Us diari", Caracteristiques:{Capacitat:"1.4", Mida:"Estandar"}};

Així per accedir ara a les propietats de l'objecte Caracteristiques hem de fer ús de la notació:

Disquete2.Caracteristiques.Capacitat


Exemples d'objecte creat amb inicialitzador Visualització per pantalla 
<script>
   Disquete1 = {Color : "Vermell", Titol:"Us diari"};

   document.write("Color: ",Disquete1["Color"]);
   document.write("<br>")
   document.write("Títol: ",Disquete1["Titol"]);
   document.write("<br>")

   Disquete2 = {Color:"Vermell", Titol:"Us diari", Caracteristiques:{Capacitat:"1.4", Mida:"Estandar"}};

   document.write("Capacitat disquete 2: ", Disquete2.Caracteristiques.Capacitat);
   document.write("<br>")
   document.write("Mida disquete 2: ",Disquete2.Caracteristiques.Mida);
</script>

3.2.2 Constructors d'objectes i propietats

Podem crear objectes mitjançant una funció constructora i després amb la paraula new.

La funció constructora ens permet declarar un nou tipus d'objecte i amb new podem crear tantes instàncies de l'objecte com siguin necessàries.

A l'exemple d'objecte hem creat un nou tipus d'objecte amb la funció constructora Cotxe:
 

                function Cotxe(Marca, Model, Any)
                {
                 this.Marca=Marca || "";
                 this.Model=Model || "";
                 this.Any=Any || "";
                }
Després hem creat una instància d'aquest tipus d'objecte anomenada miCotxe amb la instrucció:
                miCotxe = new Cotxe();
Hem fet ús de la funció constructora sense passar-li paràmetres. Després hem assignat valor a les propietats amb les instruccions:
 
                miCotxe.Marca="Seat";
                miCotxe.Model="Ibiza"
                miCotxe.Any="2000";
Podem fer aquest dos passos de creació i assignació a la mateixa instrucció fent:
                miCotxe = new Cotxe("Seat", "Ibiza", "2000");
Quan fem us del pas de paràmetres per a crear una instància de Cotxe el punter this, que en apunta a miCotxe, assigna els valors inicials a les propietats. Cas que no li passem paràmetres iniciazlitza a "".

Senyalem que podem posar com a propietats d'un objecte altres objectes, com ja hem comentat al punt anterior.

Aquest mètode ens permet crear instàncies diferents i serà el mètode més norma de crear objectes; també ens permetrà crear vectors d'objectes:

                cotxeEmpresa = new Cotxe("Peugeot", "205", "2003");
Per a definir una propietat, fins ara, hem donat un nom a aquesta propietat. També es pot definir fent ús d'un índex. Si hem definit una propietat per mitjà d'un nom ens hem de referir a ella amb el seu nom, si l'hem definida amb un índex llavors hem de referir-nos a ella amb l'índex utilitzat per definir-la.

En el cas de les propietats dels objectes d'una pàgina HTML, com els vectors de formularis de l'objecte document, ens podem referir de tres formes diferents:

   document.forms[1]                Pel segon formulari del document
   document.forms["miFormuari"]     Pel seu nom
   document.miFormulari             Pel seu nom
Nota.- Tots els objectes JavaScrip tenen la propietat prototype que permet afegir propietats en qualsevol moment a un tipus d'objecte. Afegint les línies següents a la funció constructora del tipus Cotxe obtenim per pantalla:
 
Afegint propietats a un tipus d'objecte Visualització per pantalla 
Cotxe.prototype.color=null;
miCotxe.color="Vermell";
MostraPropietats(miCotxe,"miCotxe");
miCotxe.Marca = Seat
miCotxe.Model = Ibiza
miCotxe.Any = 2000
miCotxe.color = Vermell

3.2.3 Mètodes dels objectes Els objectes poden tenir mètodes, que en realitat són funcions associades al tipus d'objecte. Podem fer l'associació d'una funció a un tipus d'objecte amb una instrucció com la següent:

         Objecte.NombreMetode = NombreFuncio
on hem donat el mètode NombreMetode a l'objecte Objecte am la funció NombreFunció .

Encara que podem assignar una funció a un mètode amb nombre diferent es normal donar el mateix nom a la propietat i a la funció.

A l'exemple següent afegim a l'objecte Cotxe el mètode que mostra les seves propietats MostraPropietats dins la funció constructora

    this.MostraPropietats = MostraPropietats;
Així podem fer ús d'aquest mètode amb la instrucció
    miCotxe.MostraPropietats();
Si ens fixem en el codi de la funció MostraPropietats veiem que es fa ús del punter this que es crida a la funció amb un objecte (miCotxe) apunta a les dades d'aquest objecte.
   function MostraPropietats()
   {
      document.write("Marca: ", this.Marca, <br>");
      document.write("Model: ", this.Model, <br>");
      document.write("Color: ", this.Color, "<br>");
      document.write("Any: ", this.Any, "<br>");
   }
Exemple d'objecte complet, amb propietats i mètodes Visualització per pantalla 
<script>
   function Cotxe(Marca, Model, Any, Color)
   {
      this.Marca=Marca || "";
      this.Model=Model || "";
      this.Any=Any || "";
      this.Color = Color;
 
      this.MostraPropietats = MostraPropietats;
   }

   function MostraPropietats()
   {
      document.write("Marca: ", this.Marca, <br>");
      document.write("Model: ", this.Model, <br>");
      document.write("Color: ", this.Color, "<br>");
      document.write("Any: ", this.Any, "<br>");
   }

   miCotxe = new Cotxe("Seat","Ibiza","2000","Vermell");
   miCotxe.MostraPropietats();
</script>

3.2.4 Herència


Considerem l'arbre de la figura. Veiem que existeixen els objectes Vehicle, Vterrestre, VtraccionMotor, VtraccionAnimal i VehiculoAereo. Les condicions de propietats i mètodes d'aquest objectes són les següents.
 

Tipus objecte (Classe) Propietats Mètodes
Vehiculo Marca
Color
Tipo
ImprimeVehiculo
Vterrestre NumRuedas ImprimeVTerrestre
VtraccionMotor CentimetrosCubicos ImprimeVTMotor
VtraccionAnimal Animal ImprimeVTAnimal
VehiculoAereo nAlas ImprimeVAereo

Així que hem de crear un arbre en el que l'objecte arrel és l'objecte Vehicle. Aquest té dos fills, els objectes VTerrestre i VehiculoAereo. L'objecte Vterrestre té també dos fills que són els objectes VTraccionMotor y VTraccionAnimal.
 
Descripció objectes Codificació dels objectes
Objecte Vehiculo:
Com que aquest objecte és l'objecte arrel la seva funció constructora és igual que la explicada al paràgraf anterior.
function Vehiculo(Marca, Color, Tipo)
{
 this.Marca = Marca || "";
 this.Color = Color || "";
 this.Tipo = Tipo || "";

 this.ImprimeVehiculo = ImprimeVehiculo 
};
        
function ImprimeVehiculo()
{
 document.write("Marca: ",this.Marca,"<br>");
 document.write("Color: ",this.Color,"<br>");
 document.write("Tipo: ",this.Tipo,"<br>");
}
Objecte Vterrestre:
En la funció constructora d'aquest objecte veiem les dues instruccions següents
 
this.Padre = Vehiculo;
this.Padre(Marca, Color, Tipo);
Aquestes instruccions fan que els objectes de tipus Vterrestre heretin les propietats i els mètodes dels objectes Vehiculo. També és necessària la instrucció que tenim després de la funció:
 
VTerrestre.prototype = Vehiculo;
Fem notar que en el moment de cridar a la funció constructora de l'objecte Vehicle li passem els paràmetres adients de Marca, Color i Tipo.
function VTerrestre(Marca, Color, nRuedas, Tipo)
{
 this.NumRuedas = nRuedas || 0;

 this.Padre = Vehiculo;
 this.Padre(Marca, Color, Tipo);
         
 this.ImprimeVTerrestre = ImprimeVTerrestre;
}
VTerrestre.prototype = Vehiculo;
        
function ImprimeVTerrestre()
{
 this.ImprimeVehiculo();
 document.write("Número de ruedas: ", this.NumRuedas,"<br>");
}
Objecte VtraccionMotor:
Aquest objecte té una funció constructora que li fa ser fill de la classe Vterrestre la qual cosa li fa tenir totes les propietats de Vterrestre, incloent les de Vehicle ja que Vterrestre les tenia. Es a dir que VtraccionMotor hereta a Vterrestre que hereta de Vehicle.
function VTraccionMotor(Marca, Color, nRuedas, CC, Tipo)
{
 this.CentimetrosCubicos=CC || 0;
 this.Padre = VTerrestre;
 this.Padre(Marca, Color, nRuedas, Tipo); 
         
 this.ImprimeVTMotor=ImprimeVTMotor;
}
VTraccionMotor.prototype = VTerrestre; 
        
function ImprimeVTMotor()
{
  this.ImprimeVTerrestre();
  document.write("C. Cubicos: ",this.CentimetrosCubicos,"<br>");
}
Objecte VtraccioAnimal:
És un objecte que a l'arbre que estem construint es troba en el mateix nivell que VtraccionMotor i que té els mateixos antecessors.
function VTraccionAnimal(Marca, Color, nRuedas, Animal, Tipo)
{
 this.Animal=Animal;
 this.Padre = VTerrestre;
 this.Padre(Marca, Color, nRuedas, Tipo);
         
 this.ImprimeVTAnimal=ImprimeVTAnimal;
} 
VTraccionAnimal.prototype = VTerrestre; 

function ImprimeVTAnimal()
{
  this.ImprimeVTerrestre();
  document.write("Animal: ",this.Animal,"<br>");
}
Objecte VehiculoAereo:
Aquest objecte està en el nivell de l'objecte Vterrestre i hereta de l'objecte arrel Vehiculo.
function VehiculoAereo(Marca, Color, nAlas, Tipo)
{
 this.Padre = Vehiculo;
 this.Padre(Marca, Color, Tipo);
 this.nAlas = nAlas;
         
 this.ImprimeVAereo=ImprimeVAereo;
} 
VehiculoAereo.prototype = Vehiculo;

function ImprimeVAereo()
{
 this.ImprimeVehiculo();
 document.write("Numero Alas: ", this.nAlas)
}

Veiem que el mecanisme d'herència ens permet tenir objectes cada cop més específics de manera que els objectes fills afegeixen propietats i mètodes als que hereten dels antecessors.

Nota important: En JavaScript no existeix l'herència múltiple, és a dir que un objecte no pot tenir més d'un objecte pare. 

3.2.5 Altres utilitats

Es pot esborrar objectes amb l'operador delete.

3.3 Objectes predefinits del nucli del llenguatge JavaScript

Els objectes predefinits dels que disposem en el nucli del llenguatge són Array, Boolean, Date, Function, Math, Number, RegExp i String.

Nota important: Recordem que els objectes tenen diferents propietats o mètodes segons tinguem el llenguatge JavaScript de Netscape o el del Internet explorer. Per aixó i d'aqui en endavant posarem només les propietats i mètodes comunes a tots dos models d'objectes.

Objecte Array

En JavaScript no existeix el concepte de vector de dades sinó el concepte de objecte Array

Ja hem tractat aquest tema a l'apartat de vectors del primer capítol on està explicat la forma de crear objectes array, donar valor als seus elements i referir-se a les dades d'aquest que tenim en els arrays. També s'explica com podem fer arrays bi-demensionals
 

Propietats

Aquest objecte té solament la propietat length que ens indica el número d'elements de l'array.
                   miVector.length

Mètodes

Els mètodes d'aquest objecte són els següents:
Mètodes de Array Descripció Ús
Array.concat(Arg1,...,Argn) Concatena dos arrays i torna un nou array. arrayNou=array1.concat(array2);
Array.join(string) Converteix tots els elements d'un array a string i els concatena en un nou string que es tornat per la funció. Si se li passa un argument fa que aquest argument sigui separador entre els elements. nouString=unArray.concat("Separador")
Array.reverse() Canvia l'ordre dels elements d'acord amb l'ordre de l'índex unArray.reverse()
Array.slice(principi, final) Aquesta funció torna un array que comença a l'element indicat en principi i acaba a l'element indicat en final. Si no se li indica final llavors torna fins al final de l'array.
NuevoARray=unArray.slice(2,5)
Array.sort(function)
Permet ordenar els elements d'un array segons un criteri expressat en la funció Exemple d'us
Array.toSource() Torna un string amb tots els elements de l'array separats per comas. Aquesta llista està entre claudàtors. Si un element és un array aquest element vindrà també entre claudàtors.
unString=unArray.toSource()
Array.toString() Torna un string amb tots els elements de l'array separats per comas.
unString=unArray.toSource()

Objecte Boolean

Boolean és un objecte que serveix per a tenir un dels dos possibles estats true o false.

Internament aquest dos estats estan representats per un 1 i un 0 respectivament.

Per a declarar un objecte de tipus Boolean hem de fer nomObjecteBoolean = new Boolean(valor) on valor pot ser o true o false.

Quan fem una instrucció de declaració varBool = Boolean(false) estem fent una variable de tipus Boolean que te valor false. No és un objecte de tipus Boolean. Són dues coses diferents. 

Objecte Date

Les dates es guarden com el número de mil·lisegons transcorreguts des de l'1 de 1970 a les 0 hores, 0 minuts i 0 segons

Aquest objecte disposa de mètodes per a construir l'objecte a partir de unes certes dades, com la dat i hora, i d'altres mètodes per a obtenir la data o l'hora, tot allò a partir d'aquest número de mil·lisegons esmentat abans.
 

Constructors

Instrucció Descripció
miData = new Date() Aquesta instrucció de construcció sense paràmetres crea un objecte de tipus Date que té com a dada la data de l'ordinador en el moment que s'executa la instrucció.
unaDAta = new Date("January 6, 2000 10:35:00") Crea una data amb les dades incloses. Pot ometre's els números de l'hora i llavors l'objecte s'inicialitza com so haguéssim posat 0.
miNaixement = new Date(1982,11,25) Així tenim una data del dia 25 de desembre de 1982 hora 0.
miNaixement = new Date(1982,11,25,10,25,0) Així obtenim la mateixa data afegint també les 10:25:00 hores

Mètodes

Fem una classificació dels mètodes en cinc apartats segons la seva utilitat:
Tipus Mètodes
Mètodes "get" per llegir dates i hores del valor dels objectes date.
getYear, getMonth, getDate tornen l'any, mes i dia del mes. getDay torna el dia de la setmana.
getHours, getMinutes, getSeconds tornen l'hora, els minuts i els segons
getTime() Torna la data i l'hora en mil·lisegons. És apropiada per a fer càlculs d'intervals de temps
getMilliseconds torna mil·lisegons
getFullYear torna l'any amb quatre dígits
getTimezoneOffset torna la diferència de temps en minuts entre l'hora local i l'hora de Greenwich
També tenim les funcions getUTCDate, getUTCDay etc. que donen les dades convertides a temps universal.
Mètodes "set" per posar dates i hores del valor dels objectes date.
setYear, setMonth, setDate posen l'any, mes i dia del mes
setHours, setMinutes, setSeconds pose l'hora, els minuts i els segons
setTime() Posa la data i l'hora en mil·lisegons. És apropiada per a fer càlculs d'intervals de temps
setMilliseconds posa mil·lisegons
setFullYear posa l'any amb quatre dígits
També tenim les funcions setUTCDate, setUTCDay etc. que posen les dades convertides a temps universal.
Mètodes "to" per a obtenir dades dels objectes date.
toGTMString torna un string amb data i hora amb temps universal (GTM)
toLocalString torna un string amb temps local
toSource, toString i toUTCString
Mètodes parse.
parse torna un string en el que la data està en format de mil·lisegons.

Per tal de fer un exemple posem un rellotge en pantalla que mira l'hora que tenim en el nostre ordinador. Hem de dir que també es fa ús de les funcions setTimeout i clearTimeout que serveixen per a arrancar o aturar execució de funcions en un cert interval de temps.
Exemple de l'objecte date Visualització per pantalla 
<FORM NAME="reloj">
<center>
<INPUT TYPE="text" NAME="texto" SIZE=12 VALUE =""><br>
<input type=BUTTON value="Pon en marcha" onClick="ponEnMarchaReloj()"><br>
<input type=BUTTON value="Para" onClick="paraReloj()">
</center>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
   var relojID = null
   var relojEnMarcha = false
   function paraReloj()
   { 
      if(relojEnMarcha)
      clearTimeout(relojID)
      relojEnMarcha = false
   }
   function ponEnMarchaReloj()
   { 
      paraReloj()
      muestraHora()
   }

   function muestraHora() {  var ahora = new Date() var hora = ahora.getHours() var minutos = ahora.getMinutes() var segundos = ahora.getSeconds() var valorHora = "" + ((hora > 12) ? hora - 12 : hora) valorHora += ((minutos < 10) ? ":0" : ":") + minutos valorHora += ((segundos < 10) ? ":0" : ":") + segundos document.reloj.texto.value = valorHora relojID = setTimeout("muestraHora()",1000) relojEnMarcha = true } ponEnMarchaReloj(); //--> </SCRIPT>



També teniu un exemple de com fer ús d'aquest objecte en el calendari que es troba en la pàgina de Complements.

Objecte Function

Aquest objecte permet crear funcions de forma alternativa a la de fer-ho amb la paraula reservada function.

La manera de fer un objecte funció és la següent:

nomObjecteFuncio = new Function([arg1, arg2,...,argn], cos de la funció);

El nom de l'objecte funció, nomObjecteFuncio, és un nom de variable o un nom de una propietat d'un objecte ja existent, com window.onerror. D'aquesta manera podem definir en aquest cas els mètodes de tractament d'errors.

La llista arg1, arg2,...,argn és el conjunt d'arguments que pot rebre la funció quan la cridarem.

En darrer lloc el cos de la funció és una string en el que tenim totes les instruccions de la funció.
Exemple de l'objecte Function Visualització per pantalla 
<form name ="frmProva"
   <input type="text" name = "txtProva" value="" 
             onMouseover="ponText()">
   <input type="reset" value="Vacia""> 
</form">

<script">
  var ponText = new Function("document.frmProva.txtProva.value='Hola Pep'")
</script">

Objecte Math

Aquest objecte té les propietats i mètodes per tal de treballar amb les funcions matemàtiques. Entre les seves propietats estan el número pi, el número e, etc. També té les funcions més usuals, com les trigonomètriques, exponencials, logarítmiques, etc.

Propietats de l'objecte Math

Són un conjunt de valors necessaris per a fer molts càlculs matemàtics.

PropietatValorÚs
ENúmero eMath.E
LN10Logaritme neperià de 10Math.LN10
LN2Logaritme neperià de 2Math.LN2
LOG10ELogaritme decimal de eMath.LOG10E
LOG2ELogaritme en base 2 de eMath.LOG2E
PIÉs el número ¶Math.PI
SQRT1_2Arrel quadra de ½Math.SQRT1_2
SQRT2Arrel quadrada de 2Math.SQRT2


Funcions de l'objecte Math

Els mètodes de l'objecte Math li donen les funcions més comuns de les matemàtiques. Així si volem calcular el sinus d'un angle de 30° haurem de fer ús de la següent notació:

Math.sin(Math.PI*30/180)
MètodeDescripcióÚs
abs()Torna el valor absolut d'un númeroMath.abs(num)
sin(), cos(), tan()Són les funcions trigonomètriques.Math.sin(angle)... L'angle ha de ser un número en radians.
asin(), acos(), atan()Són les funcions inverses de les funcions trigonomètriques.Math.asin(número)
atan2Calcula l'arc tangent del quocient dels dos paràmetres.Math.atan2(num1,num2)
ceil(), floor() i round()ceil(num) torna el més petit número enter major que num. (Arrodonir per excés)
floor(num) torna el més gran número enter més petit que num. (Arrodonir per defect)
floor(num) torna un número arrodonit de num, el número enter més proper a num.
Math.ceil(num)
exp(), log()Son les funcions exponencials i logarítmiques en base eMath.log(num)
pow()pow(a,n) torna a elevat a nMath.pow(a,n)
sqrt()torna l'arrel quadrada d'un númeroMath.sqrt(num)
max(), min()Torne el major o menor valor dels dos argumets que se'ls pot passarMath.max(num1,num2)
random()torna un número aleatori major o igual que 0 i menor que 1.Math.random()
toSource()Per a crear còpies de l'objecte Math
toString()Torna un string representant l'objecte


Podem probar totes aquestes funcions en la calculadora que tenim a la pàgina de Complements. Per al métode random() també teniu un exemple a complements.

Objecte Number

Aquest objecte té com a propietats els valors màxims i mínims de les variables numériques i alguns més. Evidenment aquests valors no es poden danviar. Aquest objecte no té més mètodes que toSource() i toString().

PropietatValorÚs
MAX_VALUENumber.MAX_VALUE
MIN_VALUENumber.MIN_VALUE
NaNValor especial. Not a number.Number.NaN
NEGATIVE_INFINITYValor especialNumber.NEGATIVE_INFINITY
POSITIVE_INFINITYValor especialNumber.POSITIVE_INFINITY

Objecte RegExp

Objecte String

Aquest objecte String està creat per donar al tipus elemental de dades d'strings els mètodes adients per tal de treballar-los, tant els objectes string com aquests tipus de dades.

Podem fer dues declaracions, una per a una variable de tipus string (varSalutacio) i un objecte de tipus String (objSalutacio):

DeclaracióTipus
varSalutacio = "Hola Món"Crea una variable de tipus String
objSalutacio = new String("Hola Món")Crea un objecte de tipus String


En totes dues entitats podem fer ús de qualsevol propietat o mètode de l'objecte String:

Exemple de varible stringVisualització per pantalla 
<script>
  varSalutacio = "Hola Món";
  document.write("VarSalutació té ",varSalutacio.length," caràcters");
</script>


De la mateixa podem calcular la longitud en caràcters de l'objecte objSalutacio.

Per finalitzar també podem escriure directament document.write("Hola Pep".length) i obtindrem el resultat.

L'objecte String només té la propietat lengt, ja explicada, i com tots els objectes té la propietat prototype.

 

Mètodes de l'objecte String.

 
Mètodes per a donar format als textos en el navegadorDescripcióÚs
linkCrea un tag de tipus <a link ...>
<script>
  var miString=new String("Capítol 1");
  document.write(miString.link("jscap01.html"));
</script>
El resultat és el link:
anchorCrea un tag de tipus anchorEl mecanisme és igual que en el cas del link
big, blink, bold, fixed, fontsize, fontcolor italics, small, strike, sub i supCreen els tags corresponents El resultat d'aquest script el teniu a sota:
<script>
   document.write("Vermell".fontcolor('#FF3300'));
</script>
Mètodes per a manipular stringsDescripcióÚs
charAt i charCodeAtTornen el caràcter o el codi del caràcter que està en la posició que li passem El codi següent produeix una sortia pre pantalla:
<script>
   document.write("HOLA MARTA".charAt(3));
   document.write("HOLA MARTA".charCodeAt(3));
</script>
concatstring1.concat(string2) crea un nou string amb el valor de l'string1 seguit del valor de l'string2, i torna aquest nou string.nouStringConcatenat=string1.concat(string2)
indexOfTorna la posició d'un determinat substring dins un string. La instrucció

document.write("Hola Món".indexOf("Món"));

escriu un 5 que és la posició de la M de Món dins el string.

Podem afegir un paràmetre numèric que serà el lloc de l'string on la funció començara a ger la cerca del substring. La instrucció

document.write("Hola Pedrolo".indexOf("o",3))

escriu un 9 en el document.
lastIndexOf Igual que indexOf pero fa la cerca del subtring de dreta a esquerra.
fromCharCode(num1,...)

fromCharCode(keyevent.wich)
Torna un string amb els caràcters corresponents als números que rep, en ISO-Latin-1.

Amb l'altre ús podem saber que tecla ha estat premuda.
La instrucció

document.write(String.fromCharCode(65,66,67,68));

posa en pantalla la seqüència ABCD.
match, replace, serchEs fa ús junt amb objectes RegExp per trobar ocurrències dins d'un String de determinats patrons. 
slice(num1,num2)

slice(num)
La primera forma torna el substring amb num2-num1 caràcters començant pel caràcter que està al lloc num1

La segona torna el substrig que comença al lloc num1 fins al final de l'string.
<script>
   miString = new String("0123456789");
   document.write(miString.slice(2,8));
   document.write("<br>",miString.slice(4));
</script>
La primera imprimeix 234567 i la segona imprimeix 3456789.
split(separador,num)
split(separador)
split(regexp,num)
split(regexp)
Torna un vector en el que cada element és un tros de l'string segons el separador o la regexp.
<script>
  miString=new String("Los que se van no volverán");
  unVector=miString.split(" ");
  for(var i=0; i<unVector.length; i++)
  {
   document.write(unVector[i],"<br>");
  }
</script>
substr
substring
Tornen trosos d'un string pasant-lis els llocs de principi i fi (num1 i num2) o només el lloc d'inici.
toLowerCase
toUpperCase
Tornen l'string en minúscules o majúscules
toStringLa mateixa que la d'altres objectes. 
valueOfLa mateixa que la d'altres objectes. Aquí tornarà el mateix string