【JavaScript】面试题合辑 - 持续更新

1. JavaScript 中 undefined 和 not defined 的区别

 not defined  -- 还没声明就使用参数,程序会报错
<script type="text/javascript">
	console.log(a)
</script>

运行结果:
报错:Uncaught ReferenceError: a is not defined
	 undefined  -- 声明了但是未初始化便使用,程序不报错还能继续往下走
<script type="text/javascript">
	var a;
	console.log(a)
</script>

运行结果:
undefined

2. 如何理解 JS 中的this关键字

JS中的this关键字由函数的调用者决定,谁调用就this就指向哪个。如果找不到调用者,this将指向windows对象。

 例子1:在一个对象的方法里面使用this进行调用
 <script type="text/javascript">
	var user = {
		name: '小明',
		age: 18,
		sayHello : function() {
			console.log('我的名字是' + this.name)
		}
	}
	user.sayHello()
 </script>
运行结果:我的名字是小明
例子2:这边的b方法里面的this指向的是windows对象,因为我们定义了一个b然后赋值的是user里里面的方法,
       此时b是挂载在windows下的而不是user下,如果说要显示为小明,那么就要用user.sayHello(),
       但是显然我们这边直接调用了b(),调用它的是windows,所以使用的是挂在windows下的name小红
<script type="text/javascript">
	var name = '小红'
	var user = {
	name: '小明',
	age: 18,
	sayHello : function() {
		console.log('我的名字是' + this.name)
	}
}
	var b = user.sayHello
	b()
运行结果:我的名字是小红
</script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值