面试题整理
来源:互联网 发布:ios11降级后数据恢复 编辑:程序博客网 时间:2024/05/22 13:16
一:正则表达式
\作为转意,\后面的字符不按原来意义解释。如/a*/将匹配a,aa,加了/a\*/只能匹配a*
^匹配一个输入或一行的开头,/^a/匹配adfh 不匹配dsda
$匹配一个输入或一行的结尾,/a$/匹配 qewa 不匹配aeds
*匹配前面字符0次或多次,/ba*/将匹配b ,ba,baaa
+匹配前面字符1次或者多次,/ba+/将匹配ba.baa
?匹配前面字符0次或1次,/ba?/将匹配b,ba
(x)匹配x保存x在名为$1……$9的变量中
x|y匹配x或y
{n}精确匹配n次
{n,}匹配n次以上
{n,m}匹配n-m次
[xyz]字符集,匹配这个集合中的任一一个字符(或元字符)
[^xyz]不匹配这个集合中的任一字符
\d匹配一个数字字符 /\d/=/[0-9]/
\D匹配一个非数字字符,/\D/=/[^0-9]/
\n匹配一个换行符
\r匹配一个回车符
二:获取浏览器的url并且获取url中的参数和值
window.location.href;获取整个url字符串
window.location.port;获取url关联的端口号
window.location.protocol;获取url的协议部分
window.location.search;获取变量的值(截取等号后面的部分)
function GetRequest() {
var url = location.search; //获取url中"?"符后的字串,包括?
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1); //substr(start,length)length可选,获取子串。
strs = str.split("&");
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
var req = GetRequest();
var from = req['from'];
alert(from);
三:数组去重方式
方式一:
Array.prototype.unique1=function(){
var n=[];//一个新的临时数组
for(var i=0;i<this.length;i++){//遍历当前数组
//如果当前数组的第i已经保存进了临时数组,那么跳过,否则把当前项push到临时数组里面
if(n.indexOf(this[i] )== -1){
n.push(this[i]);
}
}
}
方式二:
Array.prototypr.unique2=function(){
var n={};//n为hash表
var r =[];//r为临时数组
for(var i=0;i<this.length;i++){
if(!n[this[i]]){//如果hash表中没有当前值
r.push(this[i]);//把当前数组的当前项放入数组中
n[this[i]]=true;//将当前数组的当前项存入hash表中
return r;
}
}
}
方式二比方式一快很多,方式一使用的是indexOf,方式二使用的是hash
四:js new 对象具体过程
function Foo(){}
var foo = new Foo();
补补脑:
每个函数中都有一个叫prototype的属性,类型是object,即一个引用对象。
每个对象中都有一个叫_proto_的属性,类型也是object,也是一个引用对象
1.new操作符时,会马上开辟一块内存,创建一个空对象(并将this指向这个对象)
2.执行构造函数Foo(),对这个空对象进行构造(构造函数里有什么属性和方法都一一给这个空白对象配置上去,这就是为什么叫构造函数了)
3.给这个对象添加一个叫_proto_的属性,而且这个_proto_指向Foo()的prototype对象。换句话说_proto_=prototype
五:https和http(超文本传输协议)的区别
https协议需要ca申请证书,一般免费证书很少,需要交费。
http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议
http和https使用的是完全不同的连接方式用的端口号也不一样:前者是80;后者是443
http的连接很简单,是无状态的,https协议是有SSL+http协议构建的可进行加密传输,身份认证的网络协议,要比http协议安全
六:清除浮动
1.clear:both
2.父级div定义。伪类:after(IE8以上和非IE浏览器才支持:after)
和zoom(可解决ie6,ie7浮动问题)
3.父级div定义overflow:hidden
4.父级div定义overflow:auto
5.父级div定义display:table
七:css选择器优先级
1.一般而言,选择器越特殊,它的优先级越高,也就是选择器指向的越准确,它的优先级越高。通常1表示标签名选择器,10表示类选择器,100表示id选择器。如.class span{color:red;}的选择器优先级是10+1就是11;而.class的优先级是10。
2.后代选择器的定为原则
浏览器css匹配不是从左到右,而是从右到左进行查找。如div#divBox p span.red{color:red;},浏览器的查找顺序:先查找html中所有class='red'的span元素,找到后,再找其父辈元素中是否有p元素,再判断p的父元素中是否有id为divBox的div元素,如果都存在则匹配上。
如:经常遇到的问题
#id .class{clolr:red;} 但是不是显示成红色,而是id里面设置的颜色。就是因为id权重高于class权重。
八:js中实用的跨域方法原理详解
1.通过jsonp跨域
2.通过修改document.domain来跨子域
3.使用window.name来进行跨域
4.使用html5中新引进的window.postMessage方法来跨域传送数据。
九:ajax:中参数
1.dataType
预期服务器返回的数据类型。如果不指定,jquery将自动根据http包MIME信息来智能判断,比如XML MIME类型就被识别为XML。在1.4中,json就会生成一个javascript对象,而script则会执行这个脚本,随后服务器端返回的数据根据这个值解析后,传递给回调函数。可用值
"XML":返回XML文档,可用Jquery处理
"html":返回纯文本html信息;包含的script标签会在插入dom时执行。
"script":返回纯文本javascript代码,不会自动缓存结果。除非设置了“cache”参数。注意:在远程请求时(不在同一个域名下),所有post请求都将转为get请求。(因为将使用DOM的script标签来加载)
"json":返回JSON数据
"jsonp":JSONP格式。使用JSONP形式调用函数时,如“myurl?callback=?”jQuery将自动替换?为正确的函数名,以执行回调函数。
"text":返回纯文本字符串。
2.cache
ajax的url每次请求都会自己带上时间戳,如果cache设置为true,如果浏览器里面存在缓存,则直接获取的是缓存的,如果设置为false,则每次请求的时间戳都是 不一样,这样不会用到缓存。(如果加载js文件,每次都要重新去请求则会浪费很多资源,cache为true,如果浏览器存在相应文件的缓存,则直接获取的是浏览器的缓存。)
- 笔试面试题整理
- 面试题整理
- java面试题整理
- 电子工程师面试题整理
- C#面试题整理
- .net 面试题整理
- android面试题整理
- SSH面试题整理
- android面试题整理
- java面试题整理
- JAVA面试题整理
- android面试题整理 .
- 面试题整理(五)
- C#面试题整理
- Android面试题整理
- 面试题整理
- ios面试题整理
- 前端面试题整理
- 求1+2+3+4+++++++n
- 冯诺依曼VS哈佛结构
- 【Web前端】AJAX之点滴介绍
- 看MySql如何实现批量操作
- Deep learning:四十四(Pylearn2中的Quick-start例子)
- 面试题整理
- 神奇算式(ArrayList装载对象)
- 性能优化——SQL语句
- NSThread、NSOperation/NSOperationQueue、GCD多线程
- Deep learning:四十五(maxout简单理解)
- 关键字const的详解
- 生成随机数 随机生成字符创
- maven 参考
- Deep learning:四十六(DropConnect简单理解)