首页 | 

投资平台

千锋与你分享JavaScript面试题

?????发布时间:?????2019-04-15

  this:指向调用上下文  闭包:内层作用域可以访问外层作用域的变量  作用域:定义一个函数就开辟了一个局部作用域,整个js执行环境有一个全局作用域  2、JavaScript的同源策略  一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合  http,ftp:协议  主机名;localhost  端口名:80:http协议的默认端口  https:默认端口是8083  同源策略带来的麻烦:ajax在不同域名下的请求无法实现,  如果说想要请求其他来源的js文件,或者json数据,那么可以通过jsonp来解决  3、看下列代码,输出什么解释原因  varundefined;//此时undefined这个变量的值是undefined  undefined==null;//true  1==true;//true  此时会把布尔类型的值转换为数字类型true=1false=0  2==true;//false  0==false;//true  0==;//true  NaN==NaN;//false  []==false;//true  []==![];//true  undefined与null相等,但不恒等(===)  一个是number一个是string时,会尝试将string转换为number  尝试将boolean转换为number,0或1  尝试将Object转换成number或string,取决于另外一个对比量的类型  所以,对于0、空字符串的判断,建议使用===。 ===会先判断两边的值类型,类型不匹配时为false。   4、请你谈谈Cookie的弊端  1.`Cookie`数量和长度的限制。 每个domain最多只能有20条cookie,每个cookie长度不能超过4KB,否则会被截掉。   2.安全性问题。 如果cookie被人拦截了,那人就可以取得所有的session信息。

即使加密也与事无补,因为拦截者并不需要知道cookie的意义,他只要原样转发cookie就可以达到目的了。

  3.有些状态不可能保存在客户端。 例如,为了防止重复提交表单,我们需要在服务器端保存一个计数器。

如果我们把这个计数器保存在客户端,那么它起不到任何作用。   5、哪些操作会造成内存泄漏  内存泄漏指任何对象在您不再拥有或需要它之后仍然存在。   垃圾回收器定期扫描对象,并计算引用了每个对象的其他对象的数量。 如果一个对象的引用数量为0(没有其他对象引用过该对象),或对该对象的惟一引用是循环的,那么该对象的内存即可回收。   的第一个参数使用字符串而非函数的话,会引发内存泄漏。

  2.闭包  3.控制台日志  4.循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)  6、输出多少  vara=6;  setTimeout(function(){  vara=666;//由于变量a是一个局部变量  alert(a);//输出666,  },1000);  a=66;  因为vara=666;定义了局部变量a,并且赋值为666,根据变量作用域链,  全局变量处在作用域末端,优先访问了局部变量,从而覆盖了全局变量。

  vara=6;  setTimeout(function(){  //变量声明提前  alert(a);//输出undefined  vara=666;  },1000);  a=66;  因为vara=666;定义了局部变量a,同样覆盖了全局变量,但是在alert(a);之前  a并未赋值,所以输出undefined。 相关文章。

 

 

 

 

 

 

 

 

 

 

 

    分享到: