移动应用开发实验室web组js第一次考核

请简述var,let,const的区别

var

  1. var存在变量提升、暂时性死区
  2. 可以重复赋值

let

  1. let不存在变量提升、暂时性死区
  2. 块级作用域
  3. 可以重复赋值

const

  1. const不存在变量提升、暂时性死区
  2. 声明时必须定义值
  3. 块级作用域

解释垃圾回收机制,垃圾回收的方式

垃圾回收机制

如果一个对象不再被程序中的任何部分所引用,那么这个对象就可以被回收。垃圾回收器会定期检查并回收这些不再被使用的内存空间

垃圾回收的方式

  1. 标记清除
  2. 标记整理
  3. 分代收集
  4. 引用计数

以下代码的输出是什么

var tmp=new Date()
function fn(){
   
   
	console.log(tmp);
	if(false){
   
   
		var tmp='hello world'
	}
}
fn()

undefined
由于tmp只被定义了没被赋值,而if操作不会被执行

this的指向

var name = "window";
var person = {
   
   
	name: "person",
	sayName: function () {
   
   
		console.log(this.name);//person
	},
	hello: () => console.log(this.name)//window
};
function sayName() {
   
   
	var sss = person.sayName;
	sss();//window
	person.sayName();//person
	(person.sayName)();//window,person.sayName 被引用并立即调用,但同样作为普通函数调用,而不是作为对象的方法
	(b = person.sayName)();//window,同上种情况类似
	person.hello()//window,箭头函数的this指向上下文的this值
}
sayName();

实现数组扁平化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值