- 博客(11)
- 收藏
- 关注
原创 普通函数this指向进阶实例讲解
注:新版chrome浏览器下 全局是window严格模式下:全局是undefinednode下:全局是global上一篇基本对this指向有了一定的了解,没看过的可以回顾一文彻底搞懂普通函数和箭头函数this指向区别其实函数对于宿主对象来说,更专业的说法是绑定关系,fn的绑定对象为obj,obj为fn的执行环境,这篇再整理一些进阶的this实例const obj = { a: 1, fn: function() { console.log(this.a) }}obj.
2021-05-12 22:52:50
194
原创 ESNEXT(ES6及以后)常用API解析
ES6及以后新增的常用API解析注:例子建立在非严格模式下,新版chrome浏览器下严格模式下:window为undefinednode下:window为globallet和const和var的区别for(var i = 0 ; i < 3 ; i++){ setTimeout(()=>{ console.log(i); },0)}输出333为什么?因为for循环是同步任务顺序执行,var定义是全局变量,setTimeout为宏任务,会放到
2021-04-27 23:52:51
1722
原创 手写一个promiseA+
之前有写过一个完整版,包含规范,手写等本文为了处理以下这种情况,属于加强版// const promise = new APromise((resolve,reject)=>{// resolve(1111);// })// promise// .then(res=>{console.log(res);return ‘2222’})// .then((res)=>{console.log(res,‘xixixi’)});// promise// .then(con
2021-04-26 15:43:11
187
原创 一文彻底搞懂普通函数和箭头函数this指向区别
普通函数和箭头函数注:例子建立在非严格模式下,新版chrome浏览器下严格模式下:window是undefinednode下:window是global网上有很多理解,这里写下我的理解法最大的区别:普通函数:this指向它的上级宿主对象(没有就指向window)箭头函数:本身没有this,是从直接调用者(主要是向上找上级函数作用域)上面继承下来的,如果没有,就指向全局作用域window举几个例子//sayA函数没有宿主对象,this就是指向window,window.name = un
2021-04-26 00:23:42
435
原创 React入门(二)之 axios配置 | webpack相关(dev服务器,代理,babel)
以下操作建立安装好node在掌握了npm命令行本地配置完毕环境以后。如果安装慢的话可以设置淘宝镜像源承接React入门(一)继续追加配置1.安装axios及配置命令行输入npm install axios然后在src目录底下创建axios文件夹...
2021-04-24 16:01:11
396
原创 React入门(一)之创建react实例 | 配置路由 | 状态管理机
以下操作建立安装好node在掌握了npm命令行本地配置完毕环境以后。如果安装慢的话可以设置淘宝镜像源类似vue-cli,官方提供了一个create-react-app脚手架,通过脚手架安装,无需配置webpack相关全局安装create-react-appnpm install -g create-react-app创建一个react项目create-react-app react-demo创建完毕以后的代码结构应该是这样的让我们去掉一些src里面文件,让项目看起来干净一点.
2021-04-21 18:21:23
282
原创 面向对象编程及原型链介绍
什么是面向对象编程对比面向过程编程面向过程:关注的重点是动词,是分析出解决问题需要的步骤,编写对应的函数来实现每个步骤,依次来调用函数。面向对象:关注的终点是主谓,把问题分解成各个对象,每个对象表示在具体步骤内的各种行为。面向对象的三大特性:1.封装:让使用对象的人不考虑内部实现,只考虑功能使用,把内部的代码保护起来,只留出一些api供使用方使用。2.继承:为了代码复用,从父类上继承出一些方法和属性,子类也有自己的一些属性。3.多态:是不同对象作用同一操作产生的不同结果,多态的思想实际上是
2021-04-19 22:18:29
139
1
原创 Typescript的入门
1.typescript是什么?typescript是javascript的超集,javascript能到的typescript也能做到,是一门强类型的语言,使得前端面向对象编程,解决了javascript的很多痛点,比如定义不明确,VS/编辑器的无提示,支持静态类型,支持接口等。2.javascript和typescript的区别javascirpttypescript它是由网景公司在1995年开发的。它是2012年由安德斯·海尔斯伯格(Anders Hejlsberg)开发的
2021-04-14 11:39:58
164
2
原创 浏览器相关 | 事件模型 | ajax和fetch API详解
1.什么是浏览器对象模型BOM :Browser Object Model(浏览器对象模型),浏览器模型提供了独⽴于内容的、可以与浏览器窗⼝进⾏滑动的对象结构,就是浏览器提供的 API其主要对象有:window 对象——BOM 的核⼼,是 js 访问浏览器的接⼝,也是 ES 规定的 Global 对象location 对象:提供当前窗⼝中的加载的⽂档有关的信息和⼀些导航功能。既是 window 对象属性,也是 document 的对象属性navigation 对象:获取浏览器的
2021-04-13 23:21:17
271
原创 js模块化的历史 | 特点 | 简单实现
1.模块化的历史概括来讲,以下是演变史最先是将变量,方法定义在全局,我想用啥就定义啥。其次是将变量,方法封装在一个函数里面,然后对外暴露一个接口的方式提供服务。(此时已经有模块化的雏形了)最终比如common.js的模块化,你有一个变量,把它挂在module上面,然后把它export出去,其实和函数,对外抛出一个return,其实是相似的一个东西。其实目前模块化处在的交错的时代,比如引入有import,require,目前还没有一个统一的规范化标准。2.各模块化的特点AMD特点:依赖前置
2021-04-13 18:39:30
145
原创 为什么要使用Promise ? Promise A+规范 | 使用及手写一个promise
1.为什么要用Promise为了解决过长的链式回调函数造成的回调地狱,使其层次结构更加清晰明朗!//常见的回调地狱实例const loadImg = (url,callback) => { setTimeout(()=>{ console.log('url是:'+url); callback.apply(this,arguments); },500)} loadImg('localhost/img1',()=>{ loa
2021-04-12 21:48:02
404
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人