首先我们先看一个范例
function fn(para){
console.log(para, arguments);
};
fn('weiwei', 2, 3);
范例中我们设立一个参数 para
,当我们传入三个参数时,
只会接收到第一个传入的参数 weiwei
,
而 arguments
会将传入的参数全部接收,
会形成一个 arguments
的类阵列,
我们将内容点开後,能发现它的结构跟阵列很像
当我们在函式中宣告一个变数名称和参数名称相同时会如何呢?
function fn(a){
console.log(a);
var a;
console.log(a);
a = 'weiwei';
console.log(a);
};
fn('ming');
我们能看见参数 a
只有最後一个回传 weiwei
,
在函式中我们宣告的变数名称和参数一样时,
因为变数 a
已经存在,因此 var a
会无效,所以第二个 a
会回传 ming
,
而第三个 a
的结果为 weiwei
的原因是因为在 a = 'weiwei'
时,
a
的值已经被修改成 weiwei
了,
因此结果才会回传 weiwei
当我们在函式中宣告一个函式名称和参数名称相同时会如何呢?
function fn(a){
console.log(a);
function a() {};
console.log(a);
a = 'weiwei';
console.log(a);
};
fn('ming');
此时前两个 a
为 function
,第三个为 weiwei
,
这表示 a()
会因提升(hoisting)效果跑到最前端,
因此可以得知在函式中的 a()
执行时,会在参数传入之後才进行,
function callMe(d, c, b, a) {
console.log(d, c, b, a);
};
callMe('a', 'b', 'c');
该范例可以了解到参数的名称可以自己定义,
而参数的名称与传入的值没有任何关系
callback function 是将函式当成参数给另一个函式使用
function fnA(name, a) {
console.log(`${name}你好${a}`);
};
function fnB(fn) {
fn('weiwei', '阿');
};
fnB(fnA);
在执行 fnB(fnA)
时,我们会先将 fnA
的参数设定在 fnB
函式内,
而此时 fnA
这个函式会在 fnB
中执行
今天要分享的是G-mail寄信的另外一种方式, 虽然比较麻烦, 但是比较安全. 解除人机验证锁定 进...
前言 昨天讲了process 怎麽来的,今天来讲讲process 的生命周期。 process 的生...
今天我们要来实作一个 Bing Search Chatbot。 建立一些档案 在 requireme...
大家好,今天来教大家如何配置文件。 首先 首先,先确认您已经将系统更新到Big Sur以上(避免出现...
小白食谱搜寻系统缺点 (要说缺点真的是一大堆) 属性不足 : 最大的缺点就是在食材、调味料和做法的栏...