JOB:前端面试题3

1。例举3种强制类型转换和2种隐式类型转换?强制转换:valueOf()和toString().①基础数据类型→字符串 String()②基础数据类型→数字 Number(undefined)=NaN③基础数据类型→布尔类型④parseInt()和parseFloat(),只有对 String 类型调用这些方法有效对象通过valueOf方法,把自己转换成数字,通过toString方法,把自己转换成字符串。只有六个数据转化为布尔类型为false:①0  ② -0 ③ undefined ④ null ⑤ NaN ⑥""隐式类型转换:①数字+字符串eg:8+“123”=“8123”字符串和数字相加结果是字符串,字符串和数字相加结果是字符串,②布尔值参与的+运算符操作eg:true + 8 = 9③减法运算:两个操作数都会先被转换为数字eg:8-true=7

2。split() join() 的区别,数组方法pop() push() unshift() shift()使用例子(Q1)stringObj.split([separator,[,limit]])将一个字符串分割为子字符串,将结果作为字符串数组返回。eg:

var str ="Hello World!";  
str.split(" "); //["Hello", "World!"]  
arrayObj.join(separator); 把数组中的所有元素放入一个字符串中
eg:
var arr = new Array(3);
arr[0] = "George";
arr[1] = "John";
arr[2] = "Thomas";
arr.join();//"George,John,Thomas"
arr.join(".");//"George.John.Thomas"
(Q2)push():向数组末尾添加一个或者多个元素,并返回新的长度。
pop()方法:删除数组的最后一个元素,把数组的长度减1,并且返回它被删除元素的值,如果数组变为空,则该方法不改变数组,返回undefine值。
unshift():是向数组的开头添加一个或多个元素,并且返回新的长度 shift():把数组的第一个元素从其中删除,并返回被删除的值。
<script type="text/javascript">
var a=1;
var b=2;
var c=3;
var arr = new Array();
var count = arr.push(a,b,c);//加入数据,并返回长度
console.log(arr);//打印数组
console.log(count);//
console.log(arr.pop());//打印弹出的一个字符
console.log(arr.pop());
</script>

3。IE和DOM事件流的区别IE采用冒泡型事件;DOM采用先捕获后冒泡eg:

<body> 
<div> 
<button>点击这里</button> 
</div> 
</body> 
冒泡型事件模型: button->div->body (IE事件流) 
捕获型事件模型: body->div->button (Netscape事件流) 
DOM事件模型: body->div->button->button->div->body (先捕获后冒泡)  事件侦听函数的区别: 
IE使用: 
[Object].attachEvent("name_of_event_handler", fnHandler); //绑定函数 
[Object].detachEvent("name_of_event_handler", fnHandler); //移除绑定 
DOM使用: 
[Object].addEventListener("name_of_event", fnHandler, bCapture); //绑定函数 
[Object].removeEventListener("name_of_event", fnHandler, bCapture); //移除绑定 
阻止事件默认行为 :
IE:oEvent.returnValue=false; 
DOM:oEvent.preventDefault(); 
停止事件复制(冒泡):
IE:oEvent.cancelBubble=true; 
DOM:oEvent.stopPropagation(); 

4。ajax请求的时候get 和post方式的区别1).传送方式:Get方式:
用get方式可传送简单数据,数据追加到url中发送(http的header传送),会被客户端的浏览器缓存起来,有安全性隐患。
Post方式:
当使用POST方式时,浏览器把各表单字段元素及其数据作为HTTP消息的实体内容发送给Web服务器,而不是作为URL地址的参数进行传递,使用POST方式传递的数据量要比使用GET方式传送的数据量大的多。
2).信息大小:Get方式:大小一般限制在1KB下
Post方式:大量表单数据3).获取变量方式:get方式,服务器端用Request.QueryString获取变量的值。post方式,服务器端用Request.Form获取提交的数据。两种方式的参数都可以用Request来获得。
4).安全性:post不需要在URL中显示出来,而Get方法要在URL中显示。 
get安全性非常低,post安全性较高。
5).服务器端请求参数get:$username = $_GET["username"]; post:$username = $_POST["username"]; 

5。闭包是什么,有什么特性,对页面有什么影响?简要介绍你理解的闭包闭包,指的是一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分。
函数a的内部函数b,被函数a外部的一个变量引用的时候,就创建了一个闭包。
闭包就是能够读取其他函数内部变量的函数。
闭包的特性:
①.封闭性:外界无法访问闭包内部的数据,如果在闭包内声明变量,外界是无法访问的,除非闭包主动向外界提供访问接口;
②.持久性:一般的函数,调用完毕之后,系统自动注销函数,而对于闭包来说,在外部函数被调用之后,闭包结构依然保存在系统中,闭包中的数据依然存在,从而实现对数据的持久使用。
优点:
① 减少全局变量。
② 减少传递函数的参数量
③ 封装;
缺点:
 使用闭包会占有内存资源,过多的使用闭包会导致内存溢出等.
闭包对页面的影响通过使用闭包,我们可以做很多事情。比如模拟面向对象的代码风格;更优雅、更简洁的表达出代码;在某些方面提升代码的执行效率。

因为闭包只有在被调用时才执行操作,所以它可以被用来定义控制结构。多个函数可以使用同一个环境,这使得他们可以通过改变那个环境相互交流。
http://blog.csdn.net/yingzizizizizizzz/article/details/72887161

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值