0
点赞
收藏
分享

微信扫一扫

LASSO算法

雨鸣静声 03-04 11:00 阅读 4

HTML和CSS篇: 2024高频前端面试题 HTML 和 CSS 篇-CSDN博客

一. JavaScript篇

1.  数据类型有哪些

1) 基本数据类型

2)  引用数据类型 

3) 存储区别 

2. 检测数据类型有哪些方法 

3. 操作数组会改变和不会改变原数组的方法有哪些

1) 改变原数组

2) 不改变原数组

4. 判断数组的方式有哪些方法

5. 遍历数组的方法有哪些 

6. 遍历对象的方法有哪些 

7. forEach和Map的区别 

8. null 和 undefined 的区别

9. “ ===”、“ ==” 的区别? 

10. 对作用域链的理解

11. 原型,原型链 ? 有什么特点?

1)原型: 

2)原型链:

3)原型特点: 

12. 对闭包的理解

1)原理:

2)为什么使用闭包

3)场景 

13. 宏任务 与 微任务 

1) 宏任务: 

2) 微任务

14. Js 事件循环的理解

15. JS 延时加载的方式有哪些 

16. 深拷贝与浅拷贝 

1) 深拷贝:

a) Json.parseJson.stringfy 相互转换
b) 递归方法 

2) 浅拷贝:

a) Object.assign
b) 扩展运算符

17. 事件模型 

18. 什么是事件代理 

19. Ajax原理,ajax优缺点? 

20. ajax过程? 

21. 用js递归的方式写1到100求和? 

22. 说说 Javascript 数字精度丢失的问题,如何解决? 

23. 如何判断一个对象为空对象 

24. DOM常见的操作有哪些

25. 说说你对BOM的理解,常见的BOM对象你了解哪些? 

26. BOM和DOM区别? 

27.  javascript的内存(垃圾)回收机制 

28. javascript 代码中的"use strict";是什么意思?说说严格模式的限制 

二.  ES6篇

1. 新增语法

2. 暂时性死区 

3. var、let、const 区别 

4. 对箭头函数的理解 

5. 对this对象的理解

6. this指向一般有几种情况 

1) 函数调用模式全局作用域或者普通函数(包括普通函数、定时器函数、立即执行函数)自执行中this指向全局对象window

//全局作用域
 	console.log(this);//Window 
//普通函数
	function fn(){
     	console.log(this); //Window
   }
	fn(); //函数加括号调用叫函数自执行,函数自执行时,内部的this指向顶层对象/window

 2) 方法调用模式以方法的形式调用时,this 指向调用方法的那个对象

//以对象字面量的方式创建一个对象
var obj={
  name:'terry',
  sayName: function(){
  	console.log(this);
	}      //将函数作为一个对象属性的值来调用(即以方法的形式调用)
}

obj.sayName();                 //   ===>此时会输出obj这个对象

3) 构造器调用模式以构造函数的形式调用时,this 指向实例对象 

//    构造一个存放人信息的函数 

function Person(name,age,gender){
	this.name=name,
	this.age=age,
	this.gender=gender,
	this.sayName=function(){
		alert(this.name)
	}
};

var per = new Person('terry',18,'女')      //定义一个新的对象,将函数赋值给它
per.sayName()                            //此时会输出'terry',

4) apply 、 call 和 bind 调用模式使用 call 、bind和 apply 调用时,this 指向指定的那个对象 

//创建一个函数

function fun(a,b){
	console.log('a='+a);
	console.log('b='+b)
	console.log(this.name)   //这里大家也可以打印console.log(this),最后输出的是obj这个对象;
  												//this.name输出的是obj这个对象的name属性的值。
}

//创建一个对象

var obj={
	name:'obj',
};

//用对象来调用函数fun,并传入实参call()
fun.call(obj,1,2);         //输出的结果a=1    b=2     obj

//apply()  方法
fun.apply(obj,[1,2]);   //输出的结果也是a=1    b=2     obj

7. call、apply、bind 的用法以及区别 

1)  call:

2) apply:

3) bind: 

8. new操作符的实现步骤 

  //具体实现
function objectFactory() {
  let newObject = null;
  let constructor = Array.prototype.shift.call(arguments);
  let result = null;
  // 判断参数是否是一个函数
  if (typeof constructor !== "function") {
    console.error("type error");
    return;
  }
  // 新建一个空对象,对象的原型为构造函数的 prototype 对象
  newObject = Object.create(constructor.prototype);
  // 将 this 指向新建对象,并执行函数
  result = constructor.apply(newObject, arguments);
  // 判断返回对象
  let flag = result && (typeof result === "object" || typeof result === "function");
  // 判断返回结果
  return flag ? result : newObject;
}
// 使用方法
objectFactory(构造函数, 初始化参数);

9. async/await的理解

1)async

2)await 

10. 对 promise 的理解 

1) 原理:

2)特点: 

3)方法: 

未完待续...

举报

相关推荐

0 条评论