Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果我们将3个参数传递给一个在JavaScript中声明了2个参数的函数,为什么不出现错误呢_Javascript - Fatal编程技术网

如果我们将3个参数传递给一个在JavaScript中声明了2个参数的函数,为什么不出现错误呢

如果我们将3个参数传递给一个在JavaScript中声明了2个参数的函数,为什么不出现错误呢,javascript,Javascript,我知道问这个问题很愚蠢,但我还是想知道,如果我们声明一个只有1个参数的函数并传递多个参数,为什么javascript不抛出一个错误 函数校验{ 返回a; } 检查6,5 一个原因是,仅仅通过读取函数不一定能够确定函数应该接受多少个参数。例如,如果您的checkIt在某处检查了参数[1],该怎么办?但这不是解释器在函数调用时要扫描的东西 函数校验{ console.logarguments[1]; 返回a; } 检查6,5 一个原因是,仅仅通过读取函数不一定能够确定函数应该接受多少个参数。例如

我知道问这个问题很愚蠢,但我还是想知道,如果我们声明一个只有1个参数的函数并传递多个参数,为什么javascript不抛出一个错误

函数校验{ 返回a; }
检查6,5 一个原因是,仅仅通过读取函数不一定能够确定函数应该接受多少个参数。例如,如果您的checkIt在某处检查了参数[1],该怎么办?但这不是解释器在函数调用时要扫描的东西

函数校验{ console.logarguments[1]; 返回a; }
检查6,5 一个原因是,仅仅通过读取函数不一定能够确定函数应该接受多少个参数。例如,如果您的checkIt在某处检查了参数[1],该怎么办?但这不是解释器在函数调用时要扫描的东西

函数校验{ console.logarguments[1]; 返回a; }
检查6,5 这就是JS的实现方式——您可以拥有更少或更多的参数,而不会出现任何错误

如果您没有输入任何参数,那么您将无法定义


如果您有更多的参数,则只需将其放入arguments数组中。通常,如果您想接受杂项。参数数,您将使用。。。运算符,让人们知道它是一个接受未知数量参数的函数。还有,关于。。。运算符的作用是它只获取未知的参数,而arguments变量只获取所有内容

这就是JS的实现方式——您可以拥有更少或更多的参数,而不会出现任何错误

如果您没有输入任何参数,那么您将无法定义

如果您有更多的参数,则只需将其放入arguments数组中。通常,如果您想接受杂项。参数数,您将使用。。。运算符,让人们知道它是一个接受未知数量参数的函数。还有,关于。。。运算符的作用是它只获取未知的参数,而arguments变量只获取所有内容

有趣的问题

JavaScript是一种松散类型的语言

在编程中,当您不必显式指定变量和对象的类型时,我们称之为松散类型语言

JavaScript是松散类型的。您不必判断字符串是字符串,也可以要求函数接受整数作为其参数

这给了JavaScript很大的灵活性。灵活性使您能够更快地移动,快速地更改内容,以更快的速度进行迭代

松散类型语言的一个特点是,它们根据需要自动初始化和类型转换变量。因此,当JS解释器读取参数并发现其中一个参数丢失时,它会自动将其初始化为未定义,并继续进一步的编程流程

这是一个几乎适用于所有松散类型语言的概念

谢谢。

有意思的问题

JavaScript是一种松散类型的语言

在编程中,当您不必显式指定变量和对象的类型时,我们称之为松散类型语言

JavaScript是松散类型的。您不必判断字符串是字符串,也可以要求函数接受整数作为其参数

这给了JavaScript很大的灵活性。灵活性使您能够更快地移动,快速地更改内容,以更快的速度进行迭代

松散类型语言的一个特点是,它们根据需要自动初始化和类型转换变量。因此,当JS解释器读取参数并发现其中一个参数丢失时,它会自动将其初始化为未定义,并继续进一步的编程流程

这是一个几乎适用于所有松散类型语言的概念


谢谢。

因为,Javascript。欢迎来到神秘的Javascript世界!Javascript和上帝。。。以神秘的方式工作,我的朋友。因为,Javascript。欢迎来到神秘的Javascript世界!Javascript和上帝。。。以神秘的方式工作,我的朋友。还有哪些松散类型的语言是这样工作的?我这么问是因为我怀疑这是真的。我完全可以看出只有松散类型的语言才会有这种行为,但我仍然怀疑这在这些语言中是否普遍。例如,Python不是这样的。是的,我同意,这在其他LTL(如Python)中不是常见的行为,但从原则上讲,Python或JS以外的任何语言都不是纯粹的LTL,是吗?@FelixKling:因为Python不是松散类型的?PHP很有趣——它不允许传递太少的参数,但太多的参数也可以。@georg:为什么它不是松散类型的呢?因为在错误类型上使用运算符时没有类型强制?@georg
我发现我把这和别的东西搞混了。您可以为变量指定不同数据类型的值,但这并不意味着它是弱类型的。其他哪些松散类型的语言有这种行为?我这么问是因为我怀疑这是真的。我完全可以看出只有松散类型的语言才会有这种行为,但我仍然怀疑这在这些语言中是否普遍。例如,Python不是这样的。是的,我同意,这在其他LTL(如Python)中不是常见的行为,但从原则上讲,Python或JS以外的任何语言都不是纯粹的LTL,是吗?@FelixKling:因为Python不是松散类型的?PHP很有趣——它不允许传递太少的参数,但太多的参数也可以。@georg:为什么它不是松散类型的呢?因为在错误的类型上使用运算符时没有类型强制吗?@georg我发现我把它和其他东西混淆了。可以为变量指定不同数据类型的值,但这并不意味着它是弱类型的。