方函式也有流程分工,参数负责收东西
方函式:(电话再响)喂,你说参数不在东西谁要收吗?直接放着没关系,还是有人会帮我收。
我:果然是经营物流吗?这样谁会收呢?
function whoIsParameters(){
console.log(arguments);
}
whoIsParameters("Rex","Ray");
猜猜上面最後会印出什麽?undefined
吗?
不是没有参数接收吗?怎麽会?都是arguments暗地里接收的。
Arguments
它跟...restParameter
同样会将资料存入阵列中,并可以透过[i]
查询内容跟length
长度,但它只是个类阵列(Array-like-object)
检测它是否为阵列:
function trys(){
console.log(Array.isArray(arguments));
}
trys()
这里显示的false
代表的是:它并不是真正的Array
,结果看下图:
function convertToArray(){
//类阵列使用array.forEach
arguments.forEach((i)=>console.log(i));
}
convertToArray(1,2,3,4,5,6)
在上图,我们尝试让所谓类阵列使用Array.methods
,结果如上。
让它成为真正的~~郑列~~ 吧
可透过Array.from()
,就能将类阵列转换为真正的Array
function convertToArray(){
//将类阵列的转换结果存入变数x
let x = Array.from(arguments);
//接着使用Array.methods
x.forEach((i)=>console.log(i));
}
convertToArray(1,2,3,4,5,6)
结果就能顺利使用了!
arguments
你还可以知道的事非严格模式:
下它可作为参数别名,什麽意思呢?
function useArgumentsToParameter(input){
console.log(input,"这里是隐含参数调整前的");
console.log(arguments[0]);
//我们修改`arguments`的值
arguments[0] = 2486;
console.log(input,"这里是隐含参数调整後的");
}
useArgumentsToParameter(8+9)
这时你调整arguments
的值,会影响原本的引数值。
严格模式下:
agruments
不能作为参数别名arguments
互不受影响,什麽意思?这里分别修改参数与arguments的值为例:
function useArgumentsToParameter(input){
//新增严格模式
`use strict`
console.log(input,"这里是隐含参数调整前的");
console.log(arguments[0]);
//修改`arguments`的值
arguments[0] = 2486;
//发现不受影响
console.log(input,"这里是隐含参数调整後的");
console.log(arguments[0]);
//修改参数值
input = 530;
console.log(input,"这里是参数调整後的");
console.log(arguments[0]);
}
useArgumentsToParameter(8+9);
-- to be continued --
那今天就到这边搂!今天分享喜欢的歌是:
无妄合作社 No-nonsense Collective〈青春之歌 The Grand Tour〉Official Music Video
https://www.youtube.com/watch?v=qRCnF7SMufo
每天的休息,是为了後面的追求,明天见。
忍者2
MDN
<<: 初学者跪着学JavaScript Day17: 物件:new Set()
本文目标 学习基本的排程演算法 阅读原始码以理解排程器的实际运作 常见的排程演算法 FCFS (Fi...
在过去的5-7年当中,ML已经不再只限於研究人员能够接触、使用,越来越多的AI/ML工具以及产品出现...
Q: 从哪一种Loading开始呢? A: 转圈圈的Loading应该是基本? 之後将会进入一系列...
先来张时代的眼泪 图片来源(官网资料) 最原始的实体主机一台一台设定环境:纯手工,因为硬体配置都是固...
前言 昨天知道了怎麽使用 SELECT 和 WHERE 之後,就要来实际做做看啦 (先附上整段程序码...