![](https://img-blog.csdnimg.cn/20190522135948539.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
JavaScript 基础
本专栏主要详解 JavaScript 这门语言中各种原理知识,包括但不限于作用域,对象,继承,异步,闭包,线程等。
杏子姐_1024
1、科大讯飞前端负责人,书籍《Web全栈项目开发入门与实战》作者。
2、职业规划师,可解决:①职业定位问题(帮你找到更适合你的工作);②提升职场竞争力(帮你升职加薪);③职业转型问题(如果你不喜欢当前的工作,辅助你快速转型);④提升职业幸福度(帮你平衡家庭和工作,消除职业倦怠期)。可修改简历和辅导面试。
3、【自律达人】社群创办人,辅导制定阶段性人生目标,监督执行目标,达到目标闭环。
展开
-
sessionStorage、localStorage 以及 cookies 区别
在前端开发中,往往会将有些不经常更改的数据缓存到本地,比如用户信息。前端本地缓存的方式有多种,比如 sessionStorage、localStorage 以及 cookies 等。那么这个几个缓存有什么区别,各自又有什么特点呢?将是本文分享的重点。原创 2019-08-14 22:13:15 · 385 阅读 · 1 评论 -
JavaScript 事件委托机制
JavaScript 事件委托机制原创 2019-10-31 11:49:42 · 258 阅读 · 0 评论 -
JavaScript 事件派发器 EventEmitter
随着前端业务越来越复杂,为了更好地维护和拓展系统,我们需要将视图、逻辑和数据分层管理。像经典的 MVC 模型、MVP 模型及 MVVP 模型就是一种系统分层管理理念。而像前端常用框架 React 和 Vue 就是 MVVP 模型的最佳实践。原创 2020-04-30 21:29:03 · 2578 阅读 · 5 评论 -
Web Worker 使用指南
Web Worker 是 HTML5 新出的标准。众所周知 JavaScript 是单线程,为了充分利用多核 CPU 的效能,提高计算量繁杂的计算任务。在 JavaScript 中,主线程可以创建多个 Worker 子线程。Worker 子线程不影响主线程的执行,也就是不影响页面交互,只在后台运行,等到计算完成,再把结果返回给主线程。原创 2020-02-20 23:31:16 · 915 阅读 · 0 评论 -
JavaScript 事件循环机制(Event Loop)简述
JavaScript 是浏览器的脚本语言。其主要作用是与客户端进行交互。最开始设计之初它就是单线程。因为它主要操作 DOM。如果设计成多线程,假设一个线程在操作某个 DOM 节点,一个线程又在删除这个 DOM 节点。这时候浏览器就无法判断以哪个线程为主,这种复杂的场景大大增加了语言的难度。所以 JavaScript 从一诞生就是单线程。也是它最重要的特性之一。原创 2020-02-19 22:02:48 · 10432 阅读 · 3 评论 -
简述 AST 抽象语法树
AST 全称为 Abstract Syntax Tree,译为抽象语法树。在 JavaScript 中,任何一个对象(变量、函数、表达式等)都可以转化为一个抽象语法树的格式。抽象语法树本质就是一个树形结构的对象。原创 2020-02-04 22:36:40 · 6211 阅读 · 0 评论 -
JavaScript 正则表达式
JavaScript 正则表达式前言一、基础知识二、应用场景三、总结前言正则表达式在前端中的应用场景非常广泛,比如手机号码正则校验,也许你知道手机号码的校验规则是第一位1开头,第二位3、4、5、7、8开头,一共11位数字组成。但是如果使用正则表达式昵?本文将分享正则表达式的基础以及常规应用场景。一、基础知识正则方法 search 、match 、replace 、test、 exec...原创 2019-08-27 15:31:14 · 600 阅读 · 0 评论 -
通过一个实际案例彻底理解 promise
从一个实际案例彻底理解 promise前言案例案例分析通过 Promise 对案例进行优化总结前言JavaScrip 是单线程,前端在大部分情况下写出来的 JS 代码都是同步执行。偶尔会通过回调函数达到异步执行的目的。后来有了 promise 对象解决异步问题,被纳入到 ES6 标准中。但是很多人都不理解 promise,或者一知半解,感觉懂又好像不懂,最主要的是在实际项目中用得少,不能够学...原创 2019-07-19 15:38:50 · 1235 阅读 · 1 评论 -
详解 Object 对象的6种方法
一、Object.setPrototypeOf(a,b) 与 Object.getPrototypeOf(a)说明:Object.setPrototypeOf(a,b)是设置对象的原型,a为目标对象,b为原型对象,通常是b.prototype。 Object.getPrototypeOf(a)是获取对象的原型。a为目标对象,返回值是a的原型对象,即b.prototype...原创 2019-03-25 15:06:05 · 1443 阅读 · 1 评论 -
详解 JavaScript 中的6种报错类型
一、前言要解决问题,首先要找到问题的根源所在,本文主要探讨JavaScript 的几种常见报错类型。二、报错分析这是比较常见的报错,一般是 Uncaught ReferenceError ,其中 Uncaught 表示没有被 catch 捕捉到的错误,而 ReferenceError 表示错误的类型。三、常见报错类型与示例1. TypeError(类型错误)变量或参数...原创 2019-05-12 12:25:09 · 739 阅读 · 0 评论 -
详解 JavaScript 中的继承
JavaScript 中没有类的概念,ES6 提供了语法 class 和 extends 模拟了类的实现。在此之前,属性和方法的继承都是通过 prototype 原型对象来实现,而继承的核心机制是原型链。原创 2019-05-22 06:57:14 · 383 阅读 · 2 评论 -
详解 JavaScript 中的闭包
详解 JavaScript 中的闭包一、概念二、特点三、应用四、意义一、概念JavaScript 中有作用域和作用域链的概念,变量的访问只能在作用域内,如果该作用域内找不到,就向上查找父作用域,直到找到为止。那么如何在外层也能访问到作用域内的变量,就是今天的登场主角“闭包”。闭包可以通过函数作用域内返回另一个函数来达到此目的。在一般的开发项目中,可能闭包用得并不多,但是在框架工具源码里,闭包的...原创 2019-05-20 16:39:54 · 282 阅读 · 0 评论 -
详解 JavaScript 中的严格模式
JavaScript 的严格模式一、概念二、特点三、应用四、意义一、概念JavaScript 的严格模式是 ES5 引入的(ES6 默认使用严格模式),使用方法很简单,只需要在头部加上"use strict"即可,严格模式是对 sloppy 模式(懒散模式)的一种限制性使用。二、特点各浏览器对严格模式的处理不同,使用严格模式得到的结果可能也不尽相同;代码合并时,严格模式与非严格模式合并...原创 2019-05-17 22:09:20 · 309 阅读 · 0 评论 -
详解 JavaScript 中的垃圾回收机制
一、为什么要垃圾回收如果没有垃圾回收机制,适时清理不被引用的值并释放相应的内存空间,JavaScript 解释器将会消耗完系统中所有可用内存,造成系统崩溃。二、垃圾回收的核心思路所谓垃圾回收的核心思想就是清理掉内存中不再被引用的值,通俗的说,就是清理掉内存中没用的值,那么如何判断有没有用?如果是局部变量,在函数调用结束后即是无用的,可以被回收掉;而全局变量在浏览器卸载页面的时候才会消失...原创 2019-04-14 22:29:13 · 322 阅读 · 0 评论 -
详解 JavaScript 中的异步与线程
一、概念由于 JavaScript 是运行在浏览器的脚本,主要用来操作 DOM,实现用户交互,所以 JavaScript 属于单线程,因为如果一个线程在删除一个 DOM 元素,另一个线程又要给这个 DOM 元素重绘,就会引发问题,浏览器不知道该执行那个线程,而且还会增加程序的设计复杂性。HTML5 虽然增加了 Web Worker 标准,允许 JavaScript 创建多个线程,但子线程完全受...原创 2019-04-12 16:47:21 · 647 阅读 · 0 评论 -
详解 JavaScript 中 this 机制
一、前言JavaScript中this根据所处的执行环境不同而有所不同;听上去好像一头雾水,但是只要找到关键点——执行环境,或者通俗一点说就是被谁调用,你就能很容易的理解它,下面通过几个方面来具体说明:二、this 的几种情况1. 全局环境//案例1var a=function(){console.log(this);//Window};a();//案例2var a...原创 2019-03-21 17:36:13 · 291 阅读 · 0 评论 -
详解 JavaScript 的发展史
Q1:为什么会有JavaScript产生,主要解决一个什么问题?A:1994年,网景公司( Netscape )发布了 Navigator 浏览器 0.9 版,这是世界上第一款比较成熟的浏览器,但也是名副其实的浏览器,只能浏览,提交表单的时候浏览器并不知道是否提交,每次都会向服务器发送请求,由服务器来判断。所以 JavaScript 主要是为了解决与用户的交互问题。Q2:为什么叫 “Ja...原创 2019-03-01 14:27:56 · 2908 阅读 · 0 评论