小工具知识网

当前位置: 首页 > 行业知识 > 前端系列-Javascript方面

行业知识

前端系列-Javascript方面

2026-11-08 14:06:43 来源:互联网转载

1、什么是闭包以及特性、好处、坏处、使用场景?

      闭包就是能够读取其他函数内部变量的函数。

      特性:1、函数内部可以嵌套函数

                 2、内部函数可以直接访问外部函数的参数和变量

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

      使用场景:数据封装和私有化、模块模式

      使用闭包就是为了设置私有变量和方法,

      好处:能够实现封装和缓存

      坏处:就是内存消耗,使用不当可能会造成内存溢出。

2、谈谈js中变量和函数声明的提升?

      变量和函数声明的提升会被提升到最顶部去执行

      函数的提升高于变量的提升

      如果在函数内部用var声明了与外部相同的变量,则不向下寻找

      匿名函数不会被提升

      不同块中互不影响

3、说说this对象的理解?

      this总是指向直接调用者;

      如果有new关键字,则指向new出来的那个对象;

      在事件中,this指向触发这个事件的对象,特殊的是:在IE中的attachEvent中的this总是指向全局对象window。

4、事件模型的理解?

      冒泡型事件:当使用冒泡型事件时,子级元素先触发,父级元素后触发。

      捕获型事件:当使用捕获型事件时,父级元素先触发,子级元素后触发。

5、说说栈和堆的区别?

     栈内存:存储的都是局部变量,后进先出,栈内存的更新速度很快,因为局部变量的声明周期都很短;

     堆内存:存储的都是数组和对象,堆里面的实体不会被释放,但是会被当成垃圾,java有垃圾回收机制不定时地收取;

6、map和forEach的区别?

      forEach是最基本的循环,默认有三个参数:array、item、index

      map的用法和forEach基本一致,不同的是它会返回一个数组,所以callback需要有return值,如果没有,会返回undefined;

7、JS数组去重?

      new Set()、indexOf、利用includes、sort(不推荐)

      const array = [1, 2, 2, 3, 4, 4, 5];

      const uniqueArray1 = [...new Set(array)];

      const uniqueArray2 = array.filter((value, index, self) => self.indexOf(value) === index);

      const uniqueArray = array.reduce((accumulator, currentValue) => { if (!accumulator.includes(currentValue)) { accumulator.push(currentValue); } return accumulator; }, []);

      const uniqueObj = {};
      const uniqueArray = array.filter((item) => uniqueObj.hasOwnProperty(item) ? false :       uniqueObj[item] = true);

8、js定义类的四种方法?

      工厂方法、构造函数方法、原型方法、组合使用构造函数和原型方法。

9、js实现继承的三种方式?

      借用构造函数法、对象冒充、组合继承

10、对原生js的了解程度?

        数据类信、运算、对象、Function、继承、闭包、作用域、原型链、Ajax、Dom、Bom、内存泄露、跨域、异步装载、模版引擎、前端MVC、路由、模块化、Canvas、ECMAScript

11、谈一谈你对“函数式编程”的理解?

        简单来说,函数式编程是一种编程规范,也就是如何编写程序的方法论;

12、说说你对作用域的理解?

        作用域的作用:是保证执行环境里有权访问的变量和函数是有序的,作用域链的变量只能向上访问,变量访问到window对象即被终止,作用域链向下访问变量是不被允许的,

13、说说什么是事件代理?

        事件代理又称之为事件委托,就是把原本需要绑定的事件委托给父元素,让父元素担当事件监听的职务;

14、说说ajax的原理?

        ajax的原理简单来说就是在用户和服务器之间加了一个中间层(ajax引擎),由XmlHttpRequest对象来向服务器发异步请求,从服务器获取数据,然后用js来操作Dom而更新页面;

15、说说如何解决跨域问题?

        通过JSONP跨域

        通过document.domain+iframe跨域

        nginx反向代理

        nodejs中间件代理跨域

        websocket协议跨域

        后端在头部信息里面设置安全域名解决跨域

16、异步加载js的方式由哪些?

        defer,只支持IE;

        async;

        创建插入到Dom中,加载完毕后callBack;

上一篇:企业IPv6网关负载分担方案的设计与实现

下一篇:租用小型服务器怎么安装?