javascript
文章平均质量分 70
善良的黄大仙
这个作者很懒,什么都没留下…
展开
-
普通函数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 · 212 阅读 · 0 评论 -
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 · 1766 阅读 · 0 评论 -
手写一个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 · 206 阅读 · 0 评论 -
一文彻底搞懂普通函数和箭头函数this指向区别
普通函数和箭头函数注:例子建立在非严格模式下,新版chrome浏览器下严格模式下:window是undefinednode下:window是global网上有很多理解,这里写下我的理解法最大的区别:普通函数:this指向它的上级宿主对象(没有就指向window)箭头函数:本身没有this,是从直接调用者(主要是向上找上级函数作用域)上面继承下来的,如果没有,就指向全局作用域window举几个例子//sayA函数没有宿主对象,this就是指向window,window.name = un原创 2021-04-26 00:23:42 · 467 阅读 · 0 评论 -
React入门(二)之 axios配置 | webpack相关(dev服务器,代理,babel)
以下操作建立安装好node在掌握了npm命令行本地配置完毕环境以后。如果安装慢的话可以设置淘宝镜像源承接React入门(一)继续追加配置1.安装axios及配置命令行输入npm install axios然后在src目录底下创建axios文件夹...原创 2021-04-24 16:01:11 · 427 阅读 · 0 评论 -
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 · 301 阅读 · 0 评论 -
面向对象编程及原型链介绍
什么是面向对象编程对比面向过程编程面向过程:关注的重点是动词,是分析出解决问题需要的步骤,编写对应的函数来实现每个步骤,依次来调用函数。面向对象:关注的终点是主谓,把问题分解成各个对象,每个对象表示在具体步骤内的各种行为。面向对象的三大特性:1.封装:让使用对象的人不考虑内部实现,只考虑功能使用,把内部的代码保护起来,只留出一些api供使用方使用。2.继承:为了代码复用,从父类上继承出一些方法和属性,子类也有自己的一些属性。3.多态:是不同对象作用同一操作产生的不同结果,多态的思想实际上是原创 2021-04-19 22:18:29 · 159 阅读 · 1 评论 -
js模块化的历史 | 特点 | 简单实现
1.模块化的历史概括来讲,以下是演变史最先是将变量,方法定义在全局,我想用啥就定义啥。其次是将变量,方法封装在一个函数里面,然后对外暴露一个接口的方式提供服务。(此时已经有模块化的雏形了)最终比如common.js的模块化,你有一个变量,把它挂在module上面,然后把它export出去,其实和函数,对外抛出一个return,其实是相似的一个东西。其实目前模块化处在的交错的时代,比如引入有import,require,目前还没有一个统一的规范化标准。2.各模块化的特点AMD特点:依赖前置原创 2021-04-13 18:39:30 · 160 阅读 · 0 评论 -
为什么要使用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 · 430 阅读 · 0 评论