好程序员web前端教程分享JavaScript面试题

好程序员web前端教程分享JavaScript面试题

1、JavaScript this指针、闭包、作用域

this:指向调用上下文

  闭包:内层作用域可以访问外层作用域的变量

  作用域:定义一个函数就开辟了一个局部作用域,整个js执行环境有一个全局作用域

2、JavaScript的同源策略

  一段脚本只能读取来自于同一来源的窗口和文档的属性,这里的同一来源指的是主机名、协议和端口号的组合

http,ftp:协议

  主机名;localhost

  端口名:80:http协议的默认端口

https:默认端口是8083

  同源策略带来的麻烦:ajax在不同域名下的请求无法实现,

  如果说想要请求其他来源的js文件,或者json数据,那么可以通过jsonp来解决

3、看下列代码,输出什么?解释原因

var undefined;//此时undefined这个变量的值是undefined

undefined == null; // true

1 == true; // true

  此时会把布尔类型的值转换为数字类型 true=1 false=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(没有其他对象引用过该对象),或对该对象的 惟一引用是循环的,那么该对象的内存即可回收。

1. setTimeout 的第一个参数使用字符串而非函数的话,会引发内存泄漏。

2. 闭包

3. 控制台日志

4. 循环(在两个对象彼此引用且彼此保留时,就会产生一个循环)

6、输出多少?

var a = 6;

setTimeout(function () {

var a = 666;//由于变量a是一个局部变量

alert(a); // 输出666,

}, 1000);

a = 66;

  因为var a = 666;定义了局部变量a,并且赋值为666,根据变量作用域链,

  全局变量处在作用域末端,优先访问了局部变量,从而覆盖了全局变量。

var a = 6;

setTimeout(function () {

//变量声明提前

alert(a); // 输出undefined

var a = 666;

}, 1000);

a = 66;

  因为var a = 666;定义了局部变量a,同样覆盖了全局变量,但是在alert(a);之前

a并未赋值,所以输出undefined。

 

weixin028基于微信小程序小说阅读器设计+ssm后端毕业源码案例设计 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值