【日更】前端面试题

82 阅读3分钟

什么是命名函数?匿名函数?递归函数?回调函数?函数表达式?

1、命名函数:有名字的函数
2、匿名函数:没有名字的函数
3、*递归函数:函数中自己调用自己的函数就是递归函数
4、*回调函数:被作为参数传递的函数是回调函数,并且可以访问另一个函数内部的变量
5、表达式:带有变量的函数,用变量调用的函数
6、*构造函数:用 new 关键字来调用的函数就是构造函数
7、*闭包函数:闭包就是能够读取函数内部变量的函数,定义在函数的内部的函数

for 与 forEach 的区别?

forEach 不能使用 break,forEach 没有返回值。return 返回的是 undefined

什么是全局变量?什么是局部变量

1、全局变量:在函数体外部声明的变量就是全局变量,省略 var 声明的变量也是全局变量。全局变量在函数体内外都可以使用。
2、局部变量:在函数体里面定义的变量叫做局部变量,只能在函数体内部使用,函数体外部不能被使用。

什么是预解析?

在预解析中,变量的提升,只会在当前作用域中提升,提升到当前作用于的最上方。函数的变量只会提到函数作用域的最前方。

请说一下数组常用的方法有哪些?

1push():添加到数组的最后
2splice():删除指定的元素,并在删除的位置添加元素
3String()、toString():将数组转为字符串
4join():拼接字符串,将数组用什么符号转为字符串
5split():将字符串转为数组
6shift():删除数组的第一项
7pop():删除数组的最后一项
8unshift():将内容添加到数组的开头
9sort():正序排序,从小到大
10concat():合并数组
11reverse():反转
12indexOf():方法返回数组中第一次出现给定元素的下标,如果不存在则返回 -1

请说获取 dom 方法有几种?

1、*document.getElementById("id选择器"):获取单个元素
2document.getElementsByTagName("标签名"):获取的是一组数据,伪数组,注意:s
3document.getElementByName("name名称"):获取的是一组数据,伪数组。注意:s
4document.getElementsByClassName("类名选择器"):获取的是一组数据,伪数组。注意:s
5、*document.querySelector("选择器"):通过选择器获取单个节点
6、*document.querySelectorAll("选择器"):通过选择器获取多个节点。伪数组,可以通过下标取值。
7、parentNode:父节点
8、children:子节点
9、兄弟节点、事件委托等

dom 操作的方法?

1、appendChild:添加节点到最后
2、insertBefore:在某个位置插入
3、removeChild:删除子节点
4、replaceChild:修改子节点
5、cloneNode:复制克隆节点

获取设置类名的方法?

1、*className:获取或者设置类名,其中设置的类名会覆盖原来的类名。所以设置类名的时候要把之前的类名也加上
2、.classList.add(""):添加类名
3、.classList.remove(""):移除类名

innerHTML 和 innerText 的区别?

1、相同点:都可以获取或者设置内容
2、不同点:
  ①、innerHTML:以代码的形式设置/获取内容
  ②、innerText:以文本的形式设置/获取内容

js 获取或者设置属性的方法

1、通过dom进行获取或者设置属性.dom.属性
2、通过getAttribute():获取自定义属性
3、通过setAttribute():设置自定义属性