第十二天
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扩展
:和::的区别: 第一个表示的是伪类, 第二个表示的伪元素, 第二个是为了区分伪类和伪元素