在严格和非严格模式下,argumemts和参数的关系

来源博客:【Harryの心阁

第十一天

  • 题目来源: 前端每日知识3+1

Javascript题目

题目 : 看如下代码结果, 并解释其结果?(js)

问题解答

function side(arr) {
  arr[0] = arr[2];
}

function a(a, b, c = 3) {
  c = 10;
  console.log(arguments);
  side(arguments);
  return a + b + c;
}
console.log(a(1, 1, 1));
  • 结果是12 用到了es6
function side(arr) {
  arr[0] = arr[2];
}

function a(a, b, c) {
  c = 10;
  console.log(arguments);
  side(arguments);
  return a + b + c;
}
console.log(a(1, 1, 1));
  • 结果是11

解题思路

  • 这里的arguments是一个类数组, 主要是存储函数的参数; 这里这两个结果不同的原因是因为是否给函数传递默认值; 有默认值的情况, 如果是严格模式下, 是不可变的, 参数与arguments也就是深拷贝的关系; 反之可变为浅拷贝(拷贝之地)关系, 没有参数默认值则是可变的浅拷贝

打印输出

知识扩展

说说你对javascript的作用域的理解

  • 作用域就是指的是变量和函数生效(能被访问)的区域和集合, 即作用域决定了代码块中的变量和其他资源的可见性
  • 作用域分为: 全局作用域, 函数作用域(局部作用域)和块级作用域

http常用的状态码

  • 200表示请求成功, 301表示重定向, 4xx表示前端的问题, 5xx表示后端的问题

  • 常用的状态码详解

  • H5中的form如何关闭自动填充/补全的功能 设置form表单属性autocompleteoff

css扩展

  • :::的区别: 第一个表示的是伪类, 第二个表示的伪元素, 第二个是为了区分伪类和伪元素

公众号:今日在学

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Harry-iu

顺手给小编加个鸡腿????

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值