第1题 作用域
1 | // |
第2题 值类型和引用类型的传递
1 | function Person(name, age){ |
第3题 字符串转驼峰命名
1 | // 将 'get-element-by-id' 转化为 'getElementById' |
第4题 冒泡排序
1 | var arr = [2, 1, 5, 3, 4] |
第5题 不使用reverse反转数组
1 | // 交换位置 反转数组 |
第6题 js综合面试题getName
1 | /* 变量提升 函数提升 |
第7题 什么是函数节流? 什么是函数防抖
- 函数节流:一个函数执行一次后,只有大于设定的执行周期后才会执行第二次
需要频繁触发的函数,每间隔规定的时间执行一次, 降低执行频率`
1 | /** |
- 防抖函数:一个需要频繁触发的函数,在规定时间内,只让函数触发一次
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/**
* 防抖函数
* @param fn 要被防抖的函数
* @param delay 规定的时间
*/
function debounce(fn, delay){
var timer = null
return function () {
clearTimeout(timer) // 清除上一次延时器
// 重新设置新的延时器
timer = setTimeout(function () {
fn.call(this)
}, delay)
}
}
input.oninput = debounce(function(){
console.log(input.value)
}, 200)
第8题 多维数组扁平化
1 | var arr = [[1,2],[3,4,5,[6,7]]] |
第9题 变量隐式转换
1 | var a = { }, |
第10题 连等号执行顺序
1 | var y = 1, x = y = typeof x; |
第11题 toString 特例
1 | // 对象.toString() ---> [object Object] |
第12题 对象引用
1 | var a = {n:1} |
第13题 var 会突破if限制
1 | var name = "World!"; |
第14题 原型链与对象属性查找
1 | function A () { |
第15题 变量提升 this 原型链
1 | function Person() { |