JOB:前端面试题3

xiaoxiao2021-02-28  120

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

转载请注明原文地址: https://www.6miu.com/read-23654.html

最新回复(0)