前端必会
Posted 川衡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端必会相关的知识,希望对你有一定的参考价值。
1、== 与 === 区别? 解: = 赋值运算符 == 等于 === 严格等于 (值和类型均相等)2、null 与 undefined 区别? 解: null是一个只有一个值的特殊类型。表示一个空对象引用,undefined 是一个没有设置值的变量。 任何变量都可以通过设置值为 undefined 来清空。
3、targetType干啥的?
4、js中的pop()是干啥的? 解:pop() 方法用于删除并返回数组的最后一个元素。pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值
5、ajax的同步与异步区别? 解:同步:提交请求->等待服务器处理->处理完毕,返回这个期间客户端浏览器不能干任何事。异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕 同步执行完后才能进行 异步是并发的。
6、ajax中post 与 get 的区别? 解: 1. Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
3.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
7、ajax请求的Json 数据格式理解? 解: JSON 数据的书写格式是:名称/值对。Json值可以是:数字、字符串、逻辑值、数组、对象、null。它的语法是:
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
-
方括号保存数组
9、angularJs 中scope 声明与未声明的区别?directive中的scope 与controller中的scope的区别? 解:1、scope是html和单个controller之间的桥梁,数据绑定就靠他了。rootscope是各个controller中scope的桥梁。用rootscope定义的值,可以在各个controller中使用
10、用directive 都做了哪些功能?用他的主要目的是什么?directive 中的translate是什么? 解:指令即可以作为标签使用,也可以作为属性使用。transclude 有两方面的东西,一个是使用 $compile 时传入的函数,另一
个是定义指令的 compile 函数时接受的一个参数。虽然这里的一出一进本来是相互对应的,但是实际使用中,因为大部分时候不会手动调用 $compile ,在“默认”情况下,指令接受的 transclude 又会是一个比较特殊的函数。
11、service factory directive 三者之间有啥区别? 解: service 作为单例对象被创建,只有在应用生命周期结束时才被清除。
factory()让我们通过返回一个包含service方法和数据的对象来定义一个service。在service方法里面我们可以注入services,比 如 $http 和 $q。在service里面当我们仅仅需要的是一个方法和数据的集合且不需要处理复杂的逻辑的时候,factory()是一个非常不错的选择。需要使用.config()来配置service的时候不能使用factory()方法,service()方法。 provider()是创建service最底层的方式,这也是唯一一个可以使用.config()方法配置创建service的方法。 directive 自定义指令。
12、谈谈javascript中的继承?如何实现? 解:JavaScript中的继承要跟构造函数 和 原型 一起来使用。主要有:1、原型链继承 2、构造继承 3、实例继承 4、拷贝继承
13、jQuery 如何移除dom元素?移除后他的事件还存在吗?
14、css如何实现文字居中?如何垂直居中?css3不定义高度怎么垂直居中?如何处理IE中的兼容性问题? 解:vertical-align: middle,line-height,display: table, display: table-row, display: table-cell,margin,padding,flex;用
transition也可以。
15、position有那几个属性?分别都是拿来干什么的? 解:
absolute | 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
fixed | 生成绝对定位的元素,相对于浏览器窗口进行定位。 元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。 |
relative | 生成相对定位的元素,相对于其正常位置进行定位。 因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。 |
static | 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。 |
inherit | 规定应该从父元素继承 position 属性的值。 |
16、拖拽的状态如何保持呢?如果我手动添加他的状态怎么做?
17、angularJs 怎么在路由之前取到数据? 解:在路由中添加/调 resolve 方法即可。
18、定义一个scope 为1 了 再改为2 时 $watch会执行吗? 解:会的,每次你绑定一些东西到你的UI上时你就会往$watch队列里插入一条
$watch
。想象一下$watch
就是那个可以检测它监视的model里时候有变化的东西。
19、怎么把angularJs与jQuery结合使用?怎么处理他们之间的兼容性?怎么去判断页面是否渲染完了才用jQuery?
20、js 作用域、生命周期、单例? 解:
21、在用ionic中遇到哪些bug ? 22、用过哪些js组件? 23、http 请求的四种方式? 解:HttpGet HttpPost HttpPut HttpDelete。
24、解决跨域的几种方式? 解:
25、谈谈jsonP的运行原理? 解: JSONP的原理是通过script标签发起一个GET请求来取代XHR请求。JSONP生成一个script标签并插到DOM中,然后浏览器会接管并向src属性所指向的地址发送请求。
当服务器返回请求时,响应结果会被包装成一个JavaScript函数,并由该请求所对应的回调函数调用。图解如下:
事件代理托管 this的使用 作用域链 作用域链 原型 闭包 数据结构 字符串每两个字符互换 二叉树的所有左右子树互换 依赖注入 面向切面
document.ready和onload的区别:
页面加载完成有两种事件,一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件),二是onload,指示页 面包含图片等文件在内的所有元素都加载完成。(可以说:ready 在onload 前加载!!!)
我的理解: 一般样式控制的,比如图片大小控制放在onload 里面加载;
闭包 :闭包就是能够读取其他函数内部变量的函数。可以把闭包简单理解成“定义在一个函数内部的函数”。 本质上,闭包就是将函数内部和函数外部连接起来的一座桥梁。
闭包的用处有两个: 一个是可以读取函数内部的变量。 二是让这些变量的值始终保持在内存中。
注意点:
1)由于闭包会使得函数中的变量都被保存在内存中,内存消耗很大,所以不能滥用闭包,否则会造成网页的性能问题,在IE中可能导致内存泄露。解决方法是,在退出函数之前,将不使用的局部变量全部删除。
2)闭包会在父函数外部,改变父函数内部变量的值。所以,如果你把父函数当作对象(object)使用,把闭包当作它的公用方法(Public Method),把内部变量当作它的私有属性(private value),这时一定要小心,不要随便改变父函数内部变量的值。
例:var add = (function () var counter = 0; return function () return counter += 1; )();以上是关于前端必会的主要内容,如果未能解决你的问题,请参考以下文章