Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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
无效的JavaScript签名仍然调用正确的API_Javascript_Api_Webkit_V8_Sfx - Fatal编程技术网

无效的JavaScript签名仍然调用正确的API

无效的JavaScript签名仍然调用正确的API,javascript,api,webkit,v8,sfx,Javascript,Api,Webkit,V8,Sfx,为什么这样做? <html> <body id = "body"> <div id="para">hello world, invalid js API signature doesn't throw error !!!</div> <script> var temp = document.getSelection("parameter"); </script> </body> </html> 你

为什么这样做?

<html>
<body id = "body">
<div id="para">hello world, invalid js API signature doesn't throw error !!!</div>
<script>
var temp = document.getSelection("parameter");
</script>
</body>
</html>

你好,世界,无效的JSAPI签名不会抛出错误!!!
var temp=document.getSelection(“参数”);
根据标准签名,getSelection()不接受任何参数。
我已经对此进行了测试,它也不会在JS控制台上抛出任何错误。

如果调用参数数量错误的函数,JavaScript不会抱怨。如果传递的参数少于声明的参数,则额外参数的值为
undefined
。如果还有更多,它们就会被忽略。这是一个功能,而不是一个错误

在JavaScript函数中,您可以访问
arguments
值,该值是一个类似数组的结构,包含传递给它的所有参数。如果需要,可以将所有函数定义为采用0个参数,并使用
参数[0]
参数[1]
等,而不是以前使用的命名参数(尽管我不明白为什么会这样做),并且函数仍然可以完全一样工作


拥有这种
参数
结构的好处,以及对调用函数的参数数量没有限制,使您能够执行非常强大的操作,比如这里的bind polyfill:

如果调用参数数量错误,JavaScript不会抱怨。如果传递的参数少于声明的参数,则额外参数的值为
undefined
。如果还有更多,它们就会被忽略。这是一个功能,而不是一个错误

在JavaScript函数中,您可以访问
arguments
值,该值是一个类似数组的结构,包含传递给它的所有参数。如果需要,可以将所有函数定义为采用0个参数,并使用
参数[0]
参数[1]
等,而不是以前使用的命名参数(尽管我不明白为什么会这样做),并且函数仍然可以完全一样工作


拥有这个
参数
结构的好处以及对调用一个函数的参数数量没有限制,允许您执行非常强大的操作,比如这里的bind polyfill:

如果我有以下JavaScript函数

function foo(first, last){
    return "from Foo";
}
JavaScript将执行并返回以下所有操作

foo();
foo(2);
foo("abc");
foo("abc", 3, 5);
如果要处理所有传递的参数。你可以从“论点”中得到这些。
如果我有以下JavaScript函数

function foo(first, last){
    return "from Foo";
}
JavaScript将执行并返回以下所有操作

foo();
foo(2);
foo("abc");
foo("abc", 3, 5);
如果要处理所有传递的参数。你可以从“论点”中得到这些。

我刚刚测试了一个自制的功能。。。看起来javascript不会在传递的参数上抛出错误,因为该参数在函数签名中不需要或不定义。。。看起来javascript不会在传递的参数上抛出错误,因为该参数在函数签名中不需要或不定义。