所在的位置: js >> js优势 >> Web前端之JS面试题精选

Web前端之JS面试题精选

北京较好的皮肤病医院 https://m-mip.39.net/man/mipso_6172005.html

一、js的内置对象有哪些?列举一下arry和string的常用方法?

JavaScript常见的内置对象有Object,Math,String,Array,Number,Function,Boolean,JSON等,其中Object是所有对象的基类,采用了原型继承方式.

String:charAt();charCodeAt();indexOf();match();replace();search();slice();toUpperCase();toLowerCase();等方法

Array:shift();unshift();pop();push();concat();reverse();splice();slice();等方法

二、js中深拷贝和浅拷贝的区别?

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。

深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。

深拷贝的方法:

1、递归拷贝

2、使用Object.create()方法

3、jquery有提供一个.extend也可以实现

4、函数库lodash,也有提供cloneDeep用来实现

三、说说你对闭包的理解

使用闭包主要是为了设计私有的方法和变量。闭包的优点是可以避免全局变量的污染,缺点是闭包会常驻内存,会增大内存使用量,使用不当很容易造成内存泄露。在js中,函数即闭包,只有函数才会产生作用域的概念

闭包有三个特性:

1.函数嵌套函数

2.函数内部可以引用外部的参数和变量

3.参数和变量不会被垃圾回收机制回收

四、为什么不建议在JavaScript中使用innerHTML?

通过innerHTML修改内容,每次都会刷新,因此很慢。在innerHTML中没有验证的机会,因此,更容易在文档中插入错误代码,从而使网页不稳定

五、new操作符具体干了什么呢?

1、创建一个空对象。

2、并且this变量引用该对象,

3、该对象继承该函数的原型(更改原型链的指向)

4、属性和方法被加入到this引用的对象中

5、新创建的对象由this所引用,并且最后隐式的返回this

六、call()和apply()的区别和作用?

作用:都是在函数执行的时候,动态改变函数的运行环境(执行上下文)

call和apply第一个参数都是改变的运行环境对象

区别:

call从第二个参数开始,每一个参数会依次传递给调用函数

apply第二个参数是数组,数组的每一个成员会依次传递给调用函数

例子:func.call(func1,var1,var2,var3)

对应的apply写法为:func.apply(func1,[var1,var2,var3])




转载请注明:http://www.aierlanlan.com/grrz/4008.html