来源博客:【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表单属性
autocomplete
为off
css扩展
:
和::
的区别: 第一个表示的是伪类, 第二个表示的伪元素, 第二个是为了区分伪类和伪元素