前端问题整理 (9)

jquery源码封装在一个匿名函数的自执行环境中,有助于防止变量的全局污染,然后通过传入window对象参数,可以使window对象作为局部变量使用,好处是当jquery中访问window对象的时候,就不用将作用域链退回到顶层作用域了,从而可以更快的访问window对象。同样,传入undefined参数,可以缩短查找undefined时的作用域链

jquery将一些原型属性和方法封装在了jquery.prototype中,为了缩短名称,又赋值给了jquery.fn,这是很形象的写法

有一些数组或对象的方法经常能使用到,jQuery将其保存为局部变量以提高访问速度

jquery实现的链式调用可以节约代码,所返回的都是同一个对象,可以提高代码效率

24、vue、react、angular

Vue.js
一个用于创建 web 交互界面的库,是一个精简的 MVVM。它通过双向数据绑定把 View 层和 Model 层连接了起来。实际的 DOM 封装和输出格式都被抽象为了Directives 和 Filters

AngularJS
是一个比较完善的前端MVVM框架,包含模板,数据双向绑定,路由,模块化,服务,依赖注入等所有功能,模板功能强大丰富,自带了丰富的 Angular指令

react
React 仅仅是 VIEW 层是facebook公司。推出的一个用于构建UI的一个库,能够实现服务器端的渲染。用了virtual dom,所以性能很好。

25、Node的应用场景

特点:

1、它是一个Javascript运行环境

2、依赖于Chrome V8引擎进行代码解释

3、事件驱动

4、非阻塞I/O

5、单进程,单线程

优点:

高并发(最重要的优点)

缺点:

1、只支持单核CPU,不能充分利用CPU

2、可靠性低,一旦代码某个环节崩溃,整个系统都崩溃

26、谈谈你对AMD、CMD的理解

CommonJS是服务器端模块的规范,Node.js采用了这个规范。CommonJS规范加载模块是同步的,也就是说,只有加载完成,才能执行后面的操作。AMD规范则是非同步加载模块,允许指定回调函数

AMD推荐的风格通过返回一个对象做为模块对象,CommonJS的风格通过对module.exports或exports的属性赋值来达到暴露模块对象的目的

27、那些操作会造成内存泄漏?

内存泄漏指任何对象在您不再拥有或需要它之后仍然存在

setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏

闭包、控制台日志、循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

28、web开发中会话跟踪的方法有哪些

cookie

session

url重写

隐藏input

ip地址

29、介绍js的基本数据类型

Undefined、Null、Boolean、Number、String

30、介绍js有哪些内置对象?

Object 是 JavaScript 中所有对象的父对象

数据封装类对象:Object、Array、Boolean、Number 和 String

其他对象:Function、Arguments、Math、Date、RegExp、Error

31、说几条写JavaScript的基本规范?

不要在同一行声明多个变量

请使用===http://www.likecs.com/!==来比较true/false或者数值

使用对象字面量替代new Array这种形式

不要使用全局函数

Switch语句必须带有default分支

If语句必须使用大括号

for-in循环中的变量 应该使用var关键字明确限定作用域,从而避免作用域污

32、JavaScript有几种类型的值?,你能画一下他们的内存图吗?

栈:原始数据类型(Undefined,Null,Boolean,Number、String)

堆:引用数据类型(对象、数组和函数)

两种类型的区别是:存储位置不同;

原始数据类型直接存储在栈(stack)中的简单数据段,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储;

引用数据类型存储在堆(heap)中的对象,占据空间大、大小不固定,如果存储在栈中,将会影响程序运行的性能;引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其

在栈中的地址,取得地址后从堆中获得实体

前端问题整理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zygyyz.html