js面试题,每日一背
一、谈谈 This 对象的理解
- this 总是指向函数的直接调用者
- 如果有 new 关键字,this 指向 new 出来的那个对象
- 在事件中,this 指向触发这个事件的对象
二、上一题延申: new 操作符具体干了什么呢?
- 创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型
- 属性和方法被加入到 this 引用的对象中
- 新创建的对象由 this 所引用,并且最后隐式的返回 this
三、Array.splice() 与 Array.slice() 的区别
splice
- 语法 1:
数组.splice(开始索引, 多少个)- 作用: 截取数组部分内容
- 语法 2:
数组.splice(开始索引, 多少个, 插入的数据 1, 插入的数据 2, 插入的数据 3...)- 作用: 截取数组部分内容, 并插入新的数据
- 返回值: 截取出来的部分内容 组成的 数组
slice
- 语法:
数组.slice(开始索引, 结束索引) - 参数:
- 包前不包后: 包含开始索引位置的数据, 不包含结束索引位置的数据
- 不写开始索引, 默认是 0; 不写 结束索引, 默认是 数组的 length
- 参数支持写负数, 表示倒数第几个, 其实就是 length + 负数
- 作用: 截取数组部分内容
- 返回值: 截取出来的部分内容组成的新数组
总结: splice 相当于剪切数组的部分内容, 所以会影响原数组, slice 相当于复制数组的部分内容, 所以不会影响原数组