J'ai essayé de faire un débogage mais j'ai des problèmes. Maintenant, j'essaie avec alert()
. Par exemple, je veux voir la valeur de:
var product = { ProductName: $('!Answer_Response[0]').val(),
UnitPrice: $('#Price').val(),
Stock: $('#Stock').val()
};
Quand je dis alert(product)
, cela me donne simplement [object Object]
. Comment puis-je faire en alerte montrer ce qui est vraiment là?
vous pouvez utiliser la méthode JSON.stringify()
trouvée dans les navigateurs modernes et fournie par json2.js .
var myObj = {"myProp":"Hello"};
alert (JSON.stringify(myObj)); // alerts {"myProp":"Hello"};
ou
vérifiez également cette bibliothèque: http://devpro.it/JSON/files/JSON-js.html
vous pouvez utiliser la méthode toSource comme celle-ci
alert(product.toSource());
Si vous souhaitez afficher facilement le contenu des objets lors du débogage, installez un outil tel que Firebug et utilisez console.log
:
console.log(product);
Si vous souhaitez afficher les propriétés de l'objet lui-même, ne alert
pas, mais ses propriétés:
alert(product.ProductName);
alert(product.UnitPrice);
// etc... (or combine them)
Comme dit, si vous voulez vraiment booster votre débogage JavaScript, utilisez Firefox avec l'addon Firebug. Vous vous demanderez comment vous avez déjà débogué votre code auparavant.
C'est ce que j'utilise:
var result = [];
for (var l in someObject){
if (someObject.hasOwnProperty(l){
result.Push(l+': '+someObject[l]);
}
}
alert(result.join('\n'));
Si vous souhaitez également afficher des objets imbriqués, vous pouvez utiliser quelque chose de récursif:
function alertObject(obj){
var result = [];
function traverse(obj){
for (var l in obj){
if (obj.hasOwnProperty(l)){
if (obj[l] instanceof Object){
result.Push(l+'=>[object]');
traverse(obj[l]);
} else {
result.Push(l+': '+obj[l]);
}
}
}
}
traverse(obj);
return result;
}
Vous devriez vraiment utiliser la console de Firebug ou Webkit pour le débogage. Ensuite, vous pouvez simplement faire console.debug(product);
et examiner l’objet.
alert (product.UnitName + " " + product.UnitPrice + " " + product.Stock)
ou bien créez une méthode toString () sur votre objet et appelez
alert(product.toString())
Mais je suis d’accord avec d’autres affiches - si vous voulez déboguer, alors firebug ou F12 sur IE9 ou chrome et utilisez console.log est le bon choix
En fonction de la propriété qui vous intéresse:
alert(product.ProductName);
alert(product.UnitPrice);
alert(product.Stock);
alert( JSON.stringify(product) );
Utilisez la méthode native JSON.stringify
en Javascript. Pour mieux le visualiser, vous pouvez utiliser, par exemple: JSON.stringify(obj,null, 4)
var obj = {data:[{"empmenuid":"1","empid":null,"deptid":"66","aliasid":"66","firstname":"66","lastname":"66","sin":"66","status":"66","empclass":"66","hiredate":"66","seneoritydate":"66","separationdate":"66"},{"empmenuid":"3","empid":null,"deptid":"12","aliasid":"12","firstname":"12","lastname":"12","sin":"12","status":"12","empclass":"12","hiredate":"12","seneoritydate":"12","separationdate":"12","recalldate":"12","martialstatus":"12","gender":"12","pager":"12","locid":"12","jobtitle":"12","jobtitlestart":"12","fullpart":"12","manager":"12","managername":"12","middlename":"12","nickname":"12","paytype":"12","payfreq":"12"}],
recordType : 'object'};
alert(JSON.stringify(obj,null, 4));