从前端面试问题中学习
旺旺妙脆角
这个作者很懒,什么都没留下…
展开
-
面向面试题的前端学习-js篇(自用,持续完善中)
前言:初心是记录面试题,慢慢由每个知识点引伸出去,逐渐查缺补漏,构建出更完善的前端知识系统。题目来源:牛客网 gitnub目录HTTP协议get和postget请求传参长度的误区补充get和post请求在缓存方面的区别get和post的区别作用域和闭包闭包是什么闭包的作用说一下类的创建和继承如何实现一个私有变量,用getName方法可以访问,不能直接访问异步回调如何解决异步回调地狱简单的实现一个promise将原生的ajax封装成promise事件说一下什么是virtual dom说说前端中的事原创 2022-02-17 18:18:51 · 2346 阅读 · 1 评论 -
去除字符串首尾空格
trim()trim():去除字符串前后的空白。代码举例://去除字符串前后的空格,trim();let str = ' a b c ';console.log(str);console.log(str.length);console.log(str.trim());console.log(str.trim().length);打印结果:...原创 2022-02-09 17:49:42 · 1451 阅读 · 0 评论 -
数组去重的方法
splice():数组去重代码实现://创建一个数组var arr = [1, 2, 3, 2, 2, 1, 3, 4, 2, 5];//去除数组中重复的数字//获取数组中的每一个元素for (var i = 0; i < arr.length; i++) { //console.log(arr[i]); /*获取当前元素后的所有元素*/ for (var j = i + 1; j < arr.length; j++) { //console原创 2022-02-09 17:46:03 · 109 阅读 · 0 评论 -
js判断类型
type of()instance ofObject.prototype.toString.call()原创 2022-02-09 17:43:15 · 81 阅读 · 0 评论 -
==和===以及Object.js的区别
符号的强调注意==这个符号,它是判断是否等于,而不是赋值。(1)==这个符号,还可以验证字符串是否相同。例如:console.log('我爱你中国' == '我爱你中国'); // 输出结果为true(2)==这个符号并不严谨,会做隐式转换,将不同的数据类型,转为相同类型进行比较(大部分情况下,都是转换为数字)。例如:console.log('6' == 6); // 打印结果:true。这里的字符串"6"会先转换为数字6,然后再进行比较console.log(true == '1'); //原创 2022-02-09 17:41:06 · 299 阅读 · 0 评论 -
11.js的new操作符做了哪些事情?
new 一个构造函数的执行流程new 在执行时,会做下面这四件事:(1)开辟内存空间,在内存中创建一个新的空对象。(2)让 this 指向这个新的对象。(3)执行构造函数里面的代码,给这个新对象添加属性和方法。(4)返回这个新对象(所以构造函数里面不需要 return)。因为 this 指的是 new 一个 Object 之后的对象实例。于是,下面这段代码:// 创建一个函数function createStudent(name) { var student = new Object原创 2022-02-09 17:34:34 · 3058 阅读 · 0 评论 -
说一下闭包
闭包(closure):指有权访问另一个函数作用域中变量的函数。上面这个概念,出自《JavaScript 高级程序设计(第 3 版)》这本书。上面的概念中指出,闭包是一种函数;当然,你可以把闭包理解成是一种现象。具体解释如下。简单理解就是:如果这个作用域可以访问另外一个函数内部的局部变量,那就产生了闭包(此时,你可以把闭包理解成是一种现象);而另外那个作用域所在的函数称之为闭包函数。注意,这里强调的是访问局部变量哦。闭包代码举例代码举例:function fn1() { let a = 1原创 2022-02-09 11:57:54 · 550 阅读 · 0 评论 -
改变函数内部this指针指向函数(bind,call,apply的区别)?
call() 方法的作用call() 方法的作用:可以调用一个函数,与此同时,它还可以改变这个函数内部的 this 指向。call() 方法的另一个应用:可以实现继承。之所以能实现继承,其实是利用了上面的作用。语法:fn1.call(想要将this指向哪里, 函数实参1, 函数实参2);备注:第一个参数中,如果不需要改变 this 指向,则传 null。apply() 方法的作用apply() 方法的作用:可以调用一个函数,与此同时,它还可以改变这个函数内部的 this 指向。这一点,和 c原创 2022-02-09 11:48:32 · 441 阅读 · 0 评论 -
this的指向有哪几种?
函数内 this 的指向【非常重要】函数的调用有六种形式。根据函数的调用方式的不同,this 会指向不同的对象:1.以函数的形式(包括普通函数、定时器函数、立即执行函数)调用时,this 的指向永远都是 window。比如fun();相当于window.fun();2.以方法的形式调用时,this 指向调用方法的那个对象3.以构造函数的形式调用时,this 指向实例对象4.以事件绑定函数的形式调用时,this 指向绑定事件的对象5.使用 call 和 apply 调用时,this 指向指定的那原创 2022-02-09 11:44:29 · 6572 阅读 · 0 评论 -
arguments?
当我们不确定有多少个参数传递的时候,可以用 arguments 来获取。在 JavaScrip中,arguments 实际上是当前函数的一个内置对象。所有函数都内置了一个 arguments 对象(只有函数才有 arguments 对象),arguments 对象中存储了传递的所有实参.arguments的展示形式是一个伪数组。伪数组具有以下特点:可以进行遍历;具有数组的 length 属性。按索引方式存储数据。不具有数组的 push()、pop() 等方法。代码举例:利用 arguments 求原创 2022-02-09 11:07:07 · 52 阅读 · 0 评论 -
let const var的区别,什么是块级作用域,如何用ES5的方法来实现块级作用域(立即执行函数),ES6呢?
在 ES6 语法之前,统一使用var关键字来声明一个变量。在 ES6 语法及之后的版本里,可以使用 const、let关键字来定义一个变量。如果你想定义一个常量,就用 const;如果你想定义一个变量,就用 let。使用 var 关键字声明的变量( 比如 var a = 1),会在所有的代码执行之前被(但是不会赋值),但是如果声明变量时不是用 var 关键字(比如直接写a = 1),则变量不会被声明提前。JavaScript 没有块级作用域(ES6 之前)在其他编程语言中(如 Java、C#等),存在原创 2022-02-09 11:04:59 · 533 阅读 · 0 评论