
Javascript基础
js基础相关的知识
人鱼之伤
只是个人学习过程中的一些理解和随意的记录,如果有错误欢迎指出
展开
-
Javascript的String.prototype.padStart()
定义:padStart( ) 方法用另一个字符串填充当前字符串(如果需要的话,会重复多次),以便产生的字符串达到给定的长度。从当前字符串的左侧开始填充。const str1 = '5';console.log(str1.padStart(2, '0'));...原创 2021-11-09 18:04:11 · 1045 阅读 · 0 评论 -
手写promise
// 判断变量是否为functionconst isFunction = variable => typeof variable === 'function'// 三种状态const PENDING = 'PENDING'const FULFILLED = 'FULFILLED'const REJECTED = 'REJECTED'// 定义Promise的三种状态常量class MyPromise { constructor(handle) { if (!isFunctio原创 2021-11-09 13:25:17 · 201 阅读 · 0 评论 -
Javascript中的callback
回调函数的概念:A callback is a function that is passed as an argument to another function and is executed after its parent function has completed.自己在项目里的callback的使用的例子:(后期整理)原创 2021-10-26 23:53:52 · 280 阅读 · 0 评论 -
一个闭包的经典面试题
function fun(n, o) { console.log(o) return { fun: function(m) { return fun(m,n) } }}// 对第一种的理解:a = fun(0)会先调用第一行的函数,也就是传入了n为0,后面的fun(1),fun(2),fun(3)// 都是调用第四行的fun函数,然后return返回fun,也就是fun(1)传入的是1,m也是1,但是n还是第一次传入的0// 所以输出的是0// var a原创 2021-10-14 22:37:43 · 113 阅读 · 0 评论 -
Javascript的继承
以下只是简单的记录,具体的我会后面进行补充,以下的内容来自js的高级程序设计4// 1、原型链继承function SuperType() { this.property = true}SuperType.prototype.getSuperValue = function() { return this.property}function SubType() { this.subproperty = false}SubType.prototype = new SuperT转载 2021-09-08 14:55:53 · 81 阅读 · 0 评论 -
JS中的对象的创建
1、工厂模式function createPerson(name, age, job){ let o = new Object() o.name = name o.age = age o.job = job o.sayName = function() { console.log(this.name) } return o}let person1 = createPerson('2', 3, 'ceshi')2、构造函数模式function Person(n原创 2021-09-06 17:10:04 · 77 阅读 · 0 评论 -
Javascript中的普通函数和箭头函数之间的区别
在理解这个问题之前,建议大家先看看理解下关于js中的this的问题,具体看还是参考MDN中的this面试中遇到这个问题的时候,尽量回答的多一些,丰满一些,掘金中的这篇文章总结的很好,大家可以看一看掘金的文章...原创 2021-09-04 15:35:29 · 251 阅读 · 0 评论 -
由Javascript中的object遍历后的顺序问题来看看Map
今天同事告诉我,object对象遍历后的顺序可能会有所变化,不能像数组那样直接按顺序遍历得到结果原创 2021-09-03 22:43:15 · 925 阅读 · 0 评论 -
call、bind、apply三者的用法和区别
callcall的理解:call() 方法使用一个指定的this值和单独给出的一个或多个参数来调用一个函数call方法的调用的整个过程:当实例(函数)通过原型链的查找机制,找到function.prototype上的call方法,function call() {[ native code ]}1、首先把药操作的函数中的this关键字变为call方法第一个传递的实参2、把call方法第二个及之后的实参获取到3、把药操作的函数执行,并且把第二个以后传递进来的实参传递给函数然后面试中会经常问到自原创 2021-09-02 21:28:21 · 305 阅读 · 0 评论 -
面试中如何去回答原型链这个问题的思考
问题的场景面试中问到了关于原型链的什么我的回答如下:所有的JS对象都有一个prototype属性,指向它的原型对象。当试图访问一个对象的属性时,如果没有在该对象上找到,它还会搜寻该对象的原型,以及该对象的原型的原型,依次层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。在这个查找的过程中形成的链式结构就被称作原型链但是面试官接下来没有继续问我问题,所以现在就很尴尬,我觉得我回答的不够好,总觉得缺点儿什么,总觉得应该补充点儿什么以下是我个人认为可以做补充的东西:首先从什么是原型讲起,在高原创 2021-09-02 17:36:02 · 5000 阅读 · 2 评论 -
闭包的理解
闭包的概念广义:MDN中所说的闭包是指那些能够访问自由变量的函数实践意义上的闭包:实践意义上的闭包是指的一个函数可以访问另一个函数中的变量闭包的好处:1、读取函数内部的变量2、让这些变量的值始终保持在内存中,不会在f1调用后被自动清除闭包的问题:一块被分配的内存既不能使用,也不能回收。从而影响性能,甚至导致程序崩溃...原创 2021-08-31 21:20:27 · 110 阅读 · 0 评论 -
函数柯里化
const add = arg1 => { let args = [arg1] const fn = args2 => { args.push(args2) return fn } fn.toString = function() { return args.reduce((prev, item) => prev + item, 0) } return fn}const n = add(1)(2)(3)alert(n)console.log(n)// 支原创 2021-08-18 22:34:53 · 89 阅读 · 0 评论 -
Javascript中的new的实现
function objectFactory() { const obj = new Object() // [].shift.call(arguments) 删除并拿到arguments的第一项 Constructor = [].shift.call(arguments) obj.__proto__ = Constructor.prototype console.log(Constructor) const ret = Constructor.apply(obj, argum原创 2021-08-18 20:50:21 · 71 阅读 · 0 评论 -
Javascript中的call、apply和bind的手写
// 个人的思考// 实现一个简单的call// 首先思考call的功能,从简单到复杂的去完成// 自己不理解的时候,还是多看看别人的博客// 我是参考了讶羽的博客:https://github.com/mqyqingfeng/Blog/issues/11const foo = { value: 1, bar: function() { console.log(this.value) }}foo.bar()// 简单版Function.prototype.call原创 2021-08-18 17:57:29 · 113 阅读 · 0 评论 -
Javascript中的class
为什么要写这个?自己经常会看一些书籍和博客,但是人的大脑会遗忘,基本就是看了不用就会忘记,看的时候看得明明白白,用起来的时候,忘得差不多了,所以以后都会记录一下自己看过的一些知识,一是帮助自己复习,二是用来分享。来源上面也提到了,我获取知识的途径有两种,一个是看一些相关的书籍,二是看一些相关的博客,自己并不是大神,所以存在自己写的东西可能有错误的情况,如果有人发现,可以在评论区提出来。class关于class,其实很多地方都可以用到,react中我们写class组件,在自己手写promise源码的原创 2021-08-10 23:06:57 · 109 阅读 · 0 评论 -
自己写一个简单的promise
参考了一些别人的博客,自己进行理解,自己做下记录:这个是其一:class Mypromise { callbacks = [] state = 'pending' value = null constructor(fn) { fn(this._resolve.bind(this), this._reject.bind(this)) } then(onFulfilled, onRejected) { return new Mypromise((resolve,原创 2021-08-10 21:35:29 · 184 阅读 · 0 评论