1、下面代码的输出结果是?

			var a, b;
			(function(){
				console.log(a,'1');
				console.log(b,'2');
				var a=b=3;
				console.log(a,'3');
				console.log(b,'4');
			})();
			console.log(a,'5');
			console.log(b,'6');

结果:undefined,undefined,3,3,undefined,3

            var a, b;
			(function() {
				console.log(a, '1');
				console.log(b, '2');
				var a = 3,
					b = 3;
				console.log(a, '3');
				console.log(b, '4');
			})();
			console.log(a, '5');
			console.log(b, '6');

结果:undefined,undefined,3,3,undefined,undefined

2、$('.item').click()$(document).on('click','.item',function(){})的区别。

当选中的选择器被点击时触发回调函数fn。只针对与页面已存在的选择器,对动态创建的元素无效

on方法包含很多事件,点击,双击等等事件。和$().click()的用法一样,最大的区别即优点是如果动态创建的元素在该选择器选中范围内是能触发回调函数

3、阻止事件冒泡和事件委托的方法:
A:return false。 在事件的处理中,可以阻止默认事件和冒泡事件。

B:event.preventDefault()。  在事件的处理中,可以阻止默认事件但是允许冒泡事件的发生。

C:event.stopPropagation()。在事件的处理中,可以阻止冒泡事件但是允许默认事件的发生。

4、什么是单页面应用?

就是指一个系统只加载一次资源,之后的操作交互、数据交互是通过路由、ajax来进行,页面并没有刷新。

5、JavaScript 中 var 和 let 和 const 关键字的区别

JavaScript 的世界共有两种作用域:全局作用域和方法作用域。使用 var 声明的变量的作用域是方法作用域。var 变量关键字的真正问题在于其在方法内部的定义变量开始的任何地方都可以访问到这个变量。

var 和 let 第一点不同就是 let 是块作用域。let 和 var 的第二点不同是,在变量声明之前就访问变量的话,会直接提示 ReferenceError,而不像 var 那样使用默认值 undefined。

const 和 let 的作用域是一致的,不同的是 const 变量一旦被赋值,就不能再改变了。但是这并不意味着使用 const 声明的变量本身不可变,只是说它不可被再次赋值了。