1 - Resumen de lo visto hasta ahora (20')
2 - Procedimiento para realizar operaciones básicas con JavaScript en SharePoint 2013 (100')
Break
3 - App Contoso (Provider Hosted-App). Uso de Azure (120')
function deleteListItem(siteUrl) { this.itemId = 2; var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); this.oListItem = oList.getItemById(itemId); oListItem.deleteObject(); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { alert('Item deleted: ' + itemId); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function deleteListItemDisplayCount(siteUrl) { this.clientContext = new SP.ClientContext(siteUrl); this.oList = clientContext.get_web().get_lists() .getByTitle('Announcements'); clientContext.load(oList); clientContext.executeQueryAsync( Function.createDelegate(this, this.deleteItem), Function.createDelegate(this, this.onQueryFailed) ); } function deleteItem() { this.itemId = 58; this.startCount = oList.get_itemCount(); this.oListItem = oList.getItemById(itemId); oListItem.deleteObject(); oList.update(); clientContext.load(oList); clientContext.executeQueryAsync( Function.createDelegate(this, this.displayCount), Function.createDelegate(this, this.onQueryFailed) ); } function displayCount() { var endCount = oList.get_itemCount(); var listItemInfo = 'Item deleted: ' + itemId + '\nStart Count: ' + startCount + ' End Count: ' + endCount; alert(listItemInfo) } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function updateListItem(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); this.oListItem = oList.getItemById(3); oListItem.set_item('Title', 'My Updated Title'); oListItem.update(); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { alert('Item updated!'); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function createListItem(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); var itemCreateInfo = new SP.ListItemCreationInformation(); this.oListItem = oList.addItem(itemCreateInfo); oListItem.set_item('Title', 'My New Item!'); oListItem.set_item('Body', 'Hello World!'); oListItem.update(); clientContext.load(oListItem); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { alert('Item created: ' + oListItem.get_id()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml('<View><RowLimit>100</RowLimit></View>'); this.collListItem = oList.getItems(camlQuery); clientContext.load( collListItem, 'Include(Id, DisplayName, HasUniqueRoleAssignments)' ); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { var listItemInfo = ''; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo += '\nID: ' + oListItem.get_id() + '\nDisplay name: ' + oListItem.get_displayName() + '\nUnique role assignments: ' + oListItem.get_hasUniqueRoleAssignments(); } alert(listItemInfo.toString()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveListItems(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements'); var camlQuery = new SP.CamlQuery(); camlQuery.set_viewXml( '<View><Query><Where><Geq><FieldRef Name=\'ID\'/>' + '<Value Type=\'Number\'>1</Value></Geq></Where></Query>' + '<RowLimit>10</RowLimit></View>' ); this.collListItem = oList.getItems(camlQuery); clientContext.load(collListItem); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { var listItemInfo = ''; var listItemEnumerator = collListItem.getEnumerator(); while (listItemEnumerator.moveNext()) { var oListItem = listItemEnumerator.get_current(); listItemInfo += '\nID: ' + oListItem.get_id() + '\nTitle: ' + oListItem.get_item('Title') + '\nBody: ' + oListItem.get_item('Body'); } alert(listItemInfo.toString()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function readFile(resultpanel) { var clientContext; var oWebsite; var fileUrl; clientContext = new SP.ClientContext.get_current(); oWebsite = clientContext.get_web(); clientContext.load(oWebsite); clientContext.executeQueryAsync(function () { fileUrl = oWebsite.get_serverRelativeUrl() + "/Lists/Shared Documents/TextFile1.txt"; $.ajax({ url: fileUrl, type: "GET" }) .done(Function.createDelegate(this, successHandler)) .error(Function.createDelegate(this, errorHandler)); }, errorHandler); function successHandler(data) { resultpanel.innerHTML = "The content of file \"TextFile1.txt\": " + data } function errorHandler() { resultpanel.innerHTML = "Request failed: " + arguments[2]; } }
function updateFile(resultpanel) { var clientContext; var oWebsite; var oList; var fileCreateInfo; var fileContent; clientContext = new SP.ClientContext.get_current(); oWebsite = clientContext.get_web(); oList = oWebsite.get_lists().getByTitle("Shared Documents"); fileCreateInfo = new SP.FileCreationInformation(); fileCreateInfo.set_url("TextFile1.txt"); fileCreateInfo.set_content(new SP.Base64EncodedByteArray()); fileCreateInfo.set_overwrite(true); fileContent = "The updated content of my file"; for (var i = 0; i < fileContent.length; i++) { fileCreateInfo.get_content().append(fileContent.charCodeAt(i)); } this.existingFile = oList.get_rootFolder().get_files().add(fileCreateInfo); clientContext.load(this.existingFile); clientContext.executeQueryAsync( Function.createDelegate(this, successHandler), Function.createDelegate(this, errorHandler) ); function successHandler() { resultpanel.innerHTML = "Go to the " + "<a href='../Lists/Shared Documents'>document library</a> " + "to see the updated \"TextFile1.txt\" file."; } function errorHandler() { resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); } }
function deleteFile(resultpanel) {
var clientContext;
var oWebsite;
var fileUrl;
clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
clientContext.load(oWebsite);
clientContext.executeQueryAsync(function () {
fileUrl = oWebsite.get_serverRelativeUrl() +
"/Lists/Shared Documents/TextFile1.txt";
this.fileToDelete = oWebsite.getFileByServerRelativeUrl(fileUrl);
this.fileToDelete.deleteObject();
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
}, errorHandler);
function successHandler() {
resultpanel.innerHTML =
"Go to the " +
"<a href='../Lists/Shared Documents'>document library</a> " +
"to confirm that the \"TextFile1.txt\" file has been deleted.";
}
function errorHandler() {
resultpanel.innerHTML = "Request failed: " + arguments[1].get_message();
}
}
function createFile(resultpanel) { var clientContext; var oWebsite; var oList; var fileCreateInfo; var fileContent; clientContext = new SP.ClientContext.get_current(); oWebsite = clientContext.get_web(); oList = oWebsite.get_lists().getByTitle("Shared Documents"); fileCreateInfo = new SP.FileCreationInformation(); fileCreateInfo.set_url("my new file.txt"); fileCreateInfo.set_content(new SP.Base64EncodedByteArray()); fileContent = "The content of my new file"; for (var i = 0; i < fileContent.length; i++) { fileCreateInfo.get_content().append(fileContent.charCodeAt(i)); } this.newFile = oList.get_rootFolder().get_files().add(fileCreateInfo); clientContext.load(this.newFile); clientContext.executeQueryAsync( Function.createDelegate(this, successHandler), Function.createDelegate(this, errorHandler) ); function successHandler() { resultpanel.innerHTML = "Go to the " + "<a href='../Lists/Shared Documents'>document library</a> " + "to see your new file."; } function errorHandler() { resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); } }
function deleteFolder(resultpanel) {
var clientContext;
var oWebsite;
var folderUrl;
clientContext = new SP.ClientContext.get_current();
oWebsite = clientContext.get_web();
clientContext.load(oWebsite);
clientContext.executeQueryAsync(function () {
folderUrl = oWebsite.get_serverRelativeUrl() +
"/Lists/Shared Documents/Folder1";
this.folderToDelete = oWebsite.getFolderByServerRelativeUrl(folderUrl);
this.folderToDelete.deleteObject();
clientContext.executeQueryAsync(
Function.createDelegate(this, successHandler),
Function.createDelegate(this, errorHandler)
);
}, errorHandler);
function successHandler() {
resultpanel.innerHTML = "Go to the " +
"<a href='../Lists/Shared Documents'>document library</a> " +
"to make sure the folder is no longer there.";
}
function errorHandler() {
resultpanel.innerHTML = "Request failed: " + arguments[1].get_message();
}
}
function updateFolder(resultpanel) { var clientContext; var oWebsite; var oList; clientContext = new SP.ClientContext.get_current(); oWebsite = clientContext.get_web(); oList = oWebsite.get_lists().getByTitle("Shared Documents"); this.oListItem = oList.getItemById(1); this.oListItem.set_item("FileLeafRef", "My updated folder"); this.oListItem.update(); clientContext.load(this.oListItem); clientContext.executeQueryAsync( Function.createDelegate(this, successHandler), Function.createDelegate(this, errorHandler) ); function successHandler() { resultpanel.innerHTML = "Go to the " + "<a href='../Lists/Shared Documents'>document library</a> " + "to see your updated folder."; } function errorHandler() { resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); } }
function createFolder(resultpanel) { var clientContext; var oWebsite; var oList; var itemCreateInfo; clientContext = new SP.ClientContext.get_current(); oWebsite = clientContext.get_web(); oList = oWebsite.get_lists().getByTitle("Shared Documents"); itemCreateInfo = new SP.ListItemCreationInformation(); itemCreateInfo.set_underlyingObjectType(SP.FileSystemObjectType.folder); itemCreateInfo.set_leafName("My new folder!"); this.oListItem = oList.addItem(itemCreateInfo); this.oListItem.update(); clientContext.load(this.oListItem); clientContext.executeQueryAsync( Function.createDelegate(this, successHandler), Function.createDelegate(this, errorHandler) ); function successHandler() { resultpanel.innerHTML = "Go to the " + "<a href='../Lists/Shared Documents'>document library</a> " + "to see your new folder."; } function errorHandler() { resultpanel.innerHTML = "Request failed: " + arguments[1].get_message(); } }
function deleteList(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); this.listTitle = 'My Announcements List'; this.oList = oWebsite.get_lists().getByTitle(listTitle); oList.deleteObject(); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { var result = listTitle + ' deleted.'; alert(result); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function addFieldToList(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oList = clientContext.get_web().get_lists().getByTitle('Announcements');
this.oField = oList.get_fields().addFieldAsXml( '<Field DisplayName=\'MyField\' Type=\'Number\' />', true, SP.AddFieldOptions.defaultValue ); var fieldNumber = clientContext.castTo(oField,SP.FieldNumber); fieldNumber.set_maximumValue(100); fieldNumber.set_minimumValue(35); fieldNumber.update(); clientContext.load(oField); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { var result = oField.get_title() + ' added.'; alert(result); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function createList(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); var listCreationInfo = new SP.ListCreationInformation(); listCreationInfo.set_title('My Announcements List'); listCreationInfo.set_templateType(SP.ListTemplateType.announcements); this.oList = oWebsite.get_lists().add(listCreationInfo); clientContext.load(oList); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { var result = oList.get_title() + ' created.'; alert(result); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }Si se necesita actualizar la lista una vez creada, se pueden establecer las propiedades de la lista y llamar a la función update() antes de llamar a executeQueryAsync(succeededCallback, failedCallback) como se muestra en las siguientes modificaciones del ejemplo anterior
. . . . this.oList = oWebsite.get_lists().add(listCreationInfo); oList.set_description('New Announcements List'); oList.update(); clientContext.load(oList); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) );
function retrieveSpecificListPropertiesToCollection(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); var collList = oWebsite.get_lists(); this.listInfoCollection = clientContext.loadQuery(collList, 'Include(Title, Id)');
clientContext.executeQueryAsync(
Function.createDelegate(this, this.onQuerySucceeded),
Function.createDelegate(this, this.onQueryFailed)
);
}
function onQuerySucceeded() {
var listInfo = '';
for (var i = 0; i < this.listInfoCollection.length; i++) {
var oList = this.listInfoCollection[i];
listInfo += 'Title: ' + oList.get_title() +
' ID: ' + oList.get_id().toString();
}
alert(listInfo.toString());
}
function onQueryFailed(sender, args) {
alert('Request failed. ' + args.get_message() +
'\n' + args.get_stackTrace());
}
function retrieveAllListsAllFields(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); var collList = oWebsite.get_lists(); this.listInfoArray = clientContext.loadQuery(collList, 'Include(Title,Fields.Include(Title,InternalName))'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this._onQueryFailed) ); } function onQuerySucceeded() { var listInfo = ''; for (var i = 0; i < this.listInfoArray.length; i++) { var oList = this.listInfoArray[i]; var collField = oList.get_fields(); var fieldEnumerator = collField.getEnumerator(); while (fieldEnumerator.moveNext()) { var oField = fieldEnumerator.get_current(); var regEx = new RegExp('name', 'ig'); if (regEx.test(oField.get_internalName())) { listInfo += '\nList: ' + oList.get_title() + '\n\tField Title: ' + oField.get_title() + '\n\tField Name: ' + oField.get_internalName(); } } } alert(listInfo); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveAllListProperties(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); this.collList = oWebsite.get_lists(); clientContext.load(collList); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { var listInfo = ''; var listEnumerator = collList.getEnumerator(); while (listEnumerator.moveNext()) { var oList = listEnumerator.get_current(); listInfo += 'Title: ' + oList.get_title() + ' Created: ' + oList.get_created().toString() + '\n'; } alert(listInfo); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveSpecificListProperties(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); var oWebsite = clientContext.get_web(); this.collList = oWebsite.get_lists(); clientContext.load(collList, 'Include(Title, Id)'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded() { var listInfo = ''; var listEnumerator = collList.getEnumerator(); while (listEnumerator.moveNext()) { var oList = listEnumerator.get_current(); listInfo += 'Title: ' + oList.get_title() + ' ID: ' + oList.get_id().toString() + '\n'; } alert(listInfo); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveWebSite(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); clientContext.load(this.oWebsite); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Description: ' + this.oWebsite.get_description()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function retrieveWebSiteProperties(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); clientContext.load(this.oWebsite, 'Title', 'Created'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Created: ' + this.oWebsite.get_created()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
function updateWebSite(siteUrl) { var clientContext = new SP.ClientContext(siteUrl); this.oWebsite = clientContext.get_web(); this.oWebsite.set_title('Updated Web Site'); this.oWebsite.set_description('This is an updated Web site.'); this.oWebsite.update(); clientContext.load(this.oWebsite, 'Title', 'Description'); clientContext.executeQueryAsync( Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed) ); } function onQuerySucceeded(sender, args) { alert('Title: ' + this.oWebsite.get_title() + ' Description: ' + this.oWebsite.get_description()); } function onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
<script
src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"
type="text/javascript">
</script>
<script
type="text/javascript"
src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js">
</script>
<script type="text/javascript">
var hostweburl;
// Load the required SharePoint libraries.
$(document).ready(function () {
// Get the URI decoded URLs.
hostweburl =
decodeURIComponent(
getQueryStringParameter("SPHostUrl")
);
// The js files are in a URL in the form:
// web_url/_layouts/15/resource_file
var scriptbase = hostweburl + "/_layouts/15/";
// Load the js files and continue to
// the execOperation function.
$.getScript(scriptbase + "SP.Runtime.js",
function () {
$.getScript(scriptbase + "SP.js", execOperation);
}
);
});
// Function to execute basic operations.
function execOperation() {
// Continue your program flow here.
}
// Function to retrieve a query string value.
// For production purposes you may want to use
// a library to handle the query string.
function getQueryStringParameter(paramToRetrieve) {
var params = document.URL.split("?")[1].split("&");
var strParams = "";
for (var i = 0; i < params.length; i = i + 1) {
var singleParam = params[i].split("=");
if (singleParam[0] == paramToRetrieve)
return singleParam[1];
}
}
</script>
<script
src="//ajax.aspnetcdn.com/ajax/4.0/1/MicrosoftAjax.js"
type="text/javascript">
</script>
<script
type="text/javascript"
src="/_layouts/15/sp.runtime.js">
</script>
<script
type="text/javascript"
src="/_layouts/15/sp.js">
</script>
<script type="text/javascript">
// Continue your program flow here.
</script>
var resultado; var numero1 = 3; var numero2 = 5; // Se suman los números y se muestra el resultado resultado = numero1 + numero2; alert("El resultado es " + resultado); numero1 = 10; numero2 = 7; // Se suman los números y se muestra el resultado resultado = numero1 + numero2; alert("El resultado es " + resultado); numero1 = 5; numero2 = 8; // Se suman los números y se muestra el resultado resultado = numero1 + numero2; alert("El resultado es " + resultado); ...
var resultado; var numero1 = 3; var numero2 = 5; /* En este punto, se llama a la función que suma 2 números y muestra el resultado */ numero1 = 10; numero2 = 7; /* En este punto, se llama a la función que suma 2 números y muestra el resultado */ numero1 = 5; numero2 = 8; /* En este punto, se llama a la función que suma 2 números y muestra el resultado */ ...
function, seguida del nombre de la función. Su definición formal es la siguiente:function nombre_funcion() { ... }
{ y } se utilizan para encerrar todas las instrucciones que pertenecen a la función (de forma similar a como se encierran las instrucciones en las estructuras if o for).suma_y_muestra de la siguiente forma:function suma_y_muestra() { resultado = numero1 + numero2; alert("El resultado es " + resultado); }
; para terminar la instrucción:function suma_y_muestra() { resultado = numero1 + numero2; alert("El resultado es " + resultado); } var resultado; var numero1 = 3; var numero2 = 5; suma_y_muestra(); numero1 = 10; numero2 = 7; suma_y_muestra(); numero1 = 5; numero2 = 8; suma_y_muestra(); ...
,).function suma_y_muestra(primerNumero, segundoNumero) { ... }
function suma_y_muestra(primerNumero, segundoNumero) { ... } var resultado = primerNumero + segundoNumero; alert("El resultado es " + resultado); }
primerNumero será igual al primer valor que se le pase a la función y el valor de la variable segundoNumero será igual al segundo valor que se le pasa. Para pasar valores a la función, se incluyen dentro de los paréntesis utilizados al llamar a la función:// Definición de la función function suma_y_muestra(primerNumero, segundoNumero) { ... } var resultado = primerNumero + segundoNumero; alert("El resultado es " + resultado); } // Declaración de las variables var numero1 = 3; var numero2 = 5; // Llamada a la función suma_y_muestra(numero1, numero2);
suma_y_muestra(3, 5);numero1 ynumero2 y los argumentos que utiliza la función son primerNumero y segundoNumero.// Definición de la función function calculaPrecioTotal(precio) { var impuestos = 1.16; var gastosEnvio = 10; var precioTotal = ( precio * impuestos ) + gastosEnvio; } // Llamada a la función calculaPrecioTotal(23.34);
precio y le suma los impuestos y los gastos de envío para obtener el precio total. Al llamar a la función, se pasa directamente el valor del precio básico mediante el número 23.34.function calculaPrecioTotal(precio) { var impuestos = 1.16; var gastosEnvio = 10; var precioTotal = ( precio * impuestos ) + gastosEnvio; } // El valor devuelto por la función, se guarda en una variable var precioTotal = calculaPrecioTotal(23.34); // Seguir trabajando con la variable "precioTotal"
return. Aunque las funciones pueden devolver valores de cualquier tipo, solamente pueden devolver un valor cada vez que se ejecutan.function calculaPrecioTotal(precio) { var impuestos = 1.16; var gastosEnvio = 10; var precioTotal = ( precio * impuestos ) + gastosEnvio; return precioTotal; } var precioTotal = calculaPrecioTotal(23.34); // Seguir trabajando con la variable "precioTotal"
return junto con el nombre de la variable que se quiere devolver. En el ejemplo anterior, la ejecución de la función llega a la instrucción return precioTotal; y en ese momento, devuelve el valor que contenga la variableprecioTotal.var precioTotal = calculaPrecioTotal(23.34);
return, se devuelve el valor indicado y finaliza la ejecución de la función. Por tanto, todas las instrucciones que se incluyen después de un return se ignoran y por ese motivo la instrucción return suele ser la última de la mayoría de funciones.function calculaPrecioTotal(precio, porcentajeImpuestos) { var gastosEnvio = 10; var precioConImpuestos = (1 + porcentajeImpuestos/100) * precio; var precioTotal = precioConImpuestos + gastosEnvio; return precioTotal; } var precioTotal = calculaPrecioTotal(23.34, 16); var otroPrecioTotal = calculaPrecioTotal(15.20, 4);
function calculaPrecioTotal(precio, porcentajeImpuestos) { var gastosEnvio = 10; var precioConImpuestos = (1 + porcentajeImpuestos/100) * precio; var precioTotal = precioConImpuestos + gastosEnvio; return precioTotal.toFixed(2); } var precioTotal = calculaPrecioTotal(23.34, 16);