Maison >interface Web >js tutoriel >Explication détaillée de la fonction arguments en JavaScript (avec exemples)
Les fonctions de JavaScript diffèrent des autres langages orientés objet de plusieurs manières.
Il n'y a pas de surcharge de fonctions
Il existe un argument d'objet de type tableau
function foo(num) { console.log(num + 100) } function foo(num) { console.log(num + 200) } foo(100); // 300Si deux fonctions portant le même nom sont définies dans js, alors le nom n'appartient qu'à la fonction définie ultérieurement. 2. Tableau de classe Arguments L'objet arguments de fonction est une variable locale disponible dans toutes les fonctions (non fléchées) et est un objet de type tableau. Vous pouvez référencer les paramètres (réels) d'une fonction dans une fonction à l'aide de l'objet arguments.
function foo() { console.log(arguments); } foo(1, "foo", false, {name: "bar"}); // [1, "foo", false, object]
function foo() { console.log(typeof arguments); } foo(1, "foo", false, {name: "bar"}); // objectAinsi, arguments est un objet de style tableau avec une propriété de longueur et des indices pour indexer les éléments.
3. Attributs des arguments
longueur
function foo(num1, num2, num3) { console.log(arguments) } foo(1); // [1]attribut longueur Indique le nombre réel de paramètres passés dans la fonction, et non le nombre de paramètres formels lorsque la fonction a été déclarée.
appelé appelé représente la fonction elle-même, nous pouvons l'appeler via l'appelé dans la fonction.
function sayHi() { console.log(Array.prototype.slice.call(arguments, 0)) } sayHi("hello", "你好", "bonjour") //["hello", "你好", "bonjour"]
function sayHi() { console.log(Array.prototype.splice.call(arguments, 0)); } sayHi("hello", "你好", "bonjour") //["hello", "你好", "bonjour"]
function sayHi() { console.log(Array.from(arguments)); } sayHi("hello", "你好", "bonjour") //["hello", "你好", "bonjour"]
function sayHi(...arguments) { console.log(arguments); } sayHi("hello", "你好", "bonjour") //["hello", "你好", "bonjour"]Mode strictLa performance des arguments en mode strict et en mode non strict. L'affichage n'est pas le même.
// 严格模式 function foo(a, b) { "use strict"; console.log(a, arguments[0]); a = 10; console.log(a, arguments[0]); arguments[0] = 20; console.log(a, arguments[0]); b = 30; console.log(b, arguments[1]) } foo(1); 输出: 1 1 10 1 10 20 30 undefined // 非严格模式 function foo(a, b) { console.log(a, arguments[0]); a = 10; console.log(a, arguments[0]); arguments[0] = 20; console.log(a, arguments[0]); b = 30; console.log(b, arguments[1]); } foo(1); 输出: 1 1 10 10 20 20 30 undefinedEn mode non strict, les valeurs des paramètres, les paramètres réels et les arguments transmis seront partagés. Lorsque rien n'est transmis, les valeurs réelles et les arguments ne seront pas partagés. En mode strict, les valeurs des paramètres et arguments réels ne sont pas partagées.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!