第十二天
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));
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));
解题思路
- 这里的arguments是一个类数组, 主要是存储函数的参数; 这里这两个结果不同的原因是因为是否给函数传递默认值; 有默认值的情况, 如果是严格模式下, 是不可变的, 参数与arguments也就是深拷贝的关系; 反之可变为浅拷贝(拷贝之地)关系, 没有参数默认值则是可变的浅拷贝
知识扩展
说说你对javascript的作用域的理解
- 作用域就是指的是变量和函数生效(能被访问)的区域和集合, 即作用域决定了代码块中的变量和其他资源的可见性
- 作用域分为: 全局作用域, 函数作用域(局部作用域)和块级作用域
http常用的状态码
200
表示请求成功, 301
表示重定向, 4xx
表示前端的问题, 5xx
表示后端的问题 - 常用的状态码详解
- H5中的form如何关闭自动填充/补全的功能 设置form表单属性
autocomplete
为off
css扩展
:
和::
的区别: 第一个表示的是伪类, 第二个表示的伪元素, 第二个是为了区分伪类和伪元素