Web前端面试总结——JavaScript

JavaScript

1.JavaScript内置对象有哪些?

  • Math
  • Date
  • Function
  • Array
  • String
  • Number
  • Boolean
  • Object

2.JavaScript内置对象Array、String有哪些方法(15个以上)?

  • Array
push()    //将一个或多个数据加入到数组的末端,并返回新的数组长度.
pop()    //取出数组中的最后一项,修改length属性,并返回被删除的数据
shift()     //取出数组中的第一个元素,修改length属性
unshift()     //在数组最前面插入项,返回数组的长度

reverse()     //翻转数组
sort()    //即使是数组sort,也是根据字符,从小到大排序
// 带参数的sort是如何实现的?

concat()   //把参数拼接到当前数组
slice()     //从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始
splice(位置start,个数deleteCount,新元素options...)     //删除或替换当前数组的某些项目,参数start, deleteCount, options(要替换的项目)
//以上方法的含义是删除从位置start起的deleteCount个元素,用新元素option替代(新元素option可以有很多个).
join()    // 方法将数组的所有元素以给定字符串进行"串联"为一个字符串格式。

indexOf()、lastIndexOf()   //根据字符找下标,如果没找到返回-1

every()、filter()、forEach()、map()、some()
  • String
// 1 字符方法
charAt()     //获取指定位置处字符
charCodeAt()   //获取指定位置处字符的ASCII码

// 2 字符串操作方法
concat()    //拼接字符串,等效于+,+更常用
slice(start,end)     //从start位置开始,截取到end位置,end取不到
substring(start,end) //从start位置开始,截取到end位置end取不到
substr(start,length)  //从start位置开始,截取length个字符

// 3 位置方法
indexOf()    //返回指定内容在元字符串中的位置,该方法可以设置两个参数,.indexOf('要找的字符串',从某个位置p),表示从某个位置p开始找特定字符串,如果找到,就返回找到的位置,否则返回-1;第二个参数如果省略,就从位置0开始找.
lastIndexOf()     //从后往前找,只找第一个匹配的

// 4 去除空白   
trim()     //只能去除字符串前后的空白(包括空格,回车符,换行符,tab符)

// 5 大小写转换方法
to(Locale)UpperCase()     //转换大写
to(Locale)LowerCase()     //转换小写

// 6 其它
search()    //基本等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
replace()     //用于替换匹配的子字符串,一般情况下只替换第一个匹配,返回新字符串
split()     //将字符串以指定的字符分割为数组

3.JavaScript数据类型有哪些?

4.判断变量数据类型的方式?

5.null和undefined的区别?

6.js常见的Dom操作API?

7.事件冒泡和事件捕获?

8.阻止事件冒泡的几种方式?

9.对闭包的理解,什么时候构成闭包?闭包的实现方法?闭包的优缺点?

10.this使用场景及指向?

  • 箭头函数中:指向父级的this
  • 定时器中:指向window
  • 普通函数中:
  • 实例对象中:

11.修改this指向的方法?三者的区别是什么?

  call、apply、bind

12.new关键字的作用?

13.解释原型链?

14.创建对象的方式?

15.实现继承的方式?优缺点?

16.理解js变量提升?

17.==和===的区别?==中强制类型转换后比较是怎么实现的?

18.重绘和回流?

19.编译型语言和解释型语言?

  计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器。

  编译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器。

  • 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++
  • 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行,如JavaScript

  编译型语言与解释型语言对比:

  • 速度 —— 编译型语言比解释型语言执行速度快
  • 跨平台性 —— 解释型语言比编译型语言跨平台性好

20.宏任务、微任务、任务队列和调度?

21.作用域?

  • 全局作用域:
  • 局部作用域:?
  • 块级作用域:?

猜你喜欢

转载自www.cnblogs.com/belongs-to-qinghua/p/11033112.html