必读: Javascript对象Oject的强制类型转换 JavaScript筑基篇(二)->JavaScript数据类型 聊一聊valueOf和toString 深入理解JavaScript系列(12):变量对象(Variable Object) 1.JS 的数据类型 基本数据类型(其实也统称为基本型或原始型):undefined,null,number,boolean,string 一种复杂数据类型(引用型):Object 1.1数据类型介绍 undefined 类型:声明未定义 null…
参考文章:深入理解JS引擎的执行机制        JavaScript 异步.栈.事件循环.任务队列 我的笔记:ES系列之Promise async 和 await Event Loop 前提 js是单线程的 js的Event Loop是JS的执行机制,深入了解JS的执行,就等于深入了解JS里的event loop. 问:js是为单线程的,为什么要实现异步,单线程怎么实现异步? 答:1.js的单线程能够保证对DOM操作的顺序性,如果是多线程,A线程编辑DOM上的内容,B线程删除该DOM,那么,…
Node.js(JavaScript,everywhere) 1.Node.js 介绍 1.1. 为什么要学习Node.js 企业需求 + 具有服务端开发经验更好 + front-end + back-end + 全栈开发工程师(什么都干呗!!!) + 基本的网站开发能力 * 服务端 * 前端 * 运维部署 + 案例(多人社区) 学习node.js的目的 + 帮助大家打开服务端这个黑盒子 + 只有了解服务端,才能更好的配合服务端开发人员进行协同开发 1.2. Node.js是什么 Node.js…
DOM 节点类型 浏览器渲染过程 浏览器是怎么把HTML标签语言和JavaScript联系在一起的,这就是我们常说的DOM. 浏览器中的DOM解析器把HTML翻译成对象(object),然后JavaScript通过操作生成的 object 来操作HTML,因为HTML标签是多层嵌套的,所以JavaScript将HTML解析成了DOM树. 在HTML中,整个文档可以分为不同节点:整个文档是一个节点:每个HTML标签是元素节点HTML元素内的文本是文本节点每个HTML的属性节点注释节点······…
必看参考: 请移步:博客园 JavaScript的执行上下文 深入理解JavaScript执行上下文和执行栈 JavaScript 深入之执行上下文 写在开头 入坑前端已经 13 个月了,不能再称自己为小白,那么现在就来学习一下 JS 的执行相关的知识. 自己吹过的牛皮,含着泪跪着也要实现它! 比如,先定一个小目标:成为高级前端.加油! 废话少说,进入正题 执行上下文 执行上下文(Execution context,EC)就是 JS 代码的执行环境,也称执行上下文环境. 在 JS 中有三种代码运…
原文链接: 前端路由跳转基本原理 前述 前端三大框架Angular.React和Vue都推行单页面应用SPA开发模式,这是因为在路由切换时,替换DOM Tree中发生修改的DOM部分,来减少原来因为多页面应用跳转带来巨大的性能损耗. 他们都有自己典型的路由解决方案:@Angular/router.react-router.vue-router. 一般来说,这些路由插件总是提供俩种不同的路由方式:Hash和History,有时候也会提供非浏览器环境下的路由方式Abstract,在vue-route…
参考大神:Javascript多线程 web worker ---- 6.Web Worker 概述 截图过来: 线程之间的通信 let worker = new Worker(‘js文件路径’) 主线程 worker.PostMessage(你想传输的数据); worker.onmessage = function(event){ //event.data是子线程返回的数据 } 子线程 onmessage 接收主线程数据 PostMessage 向主线程发送数据 例子 <!DOCTYPE ht…
[面向对象] 面向对象的三大特性:封装.继承.多态 封装:在“类”里边有关键字public.protected.private 对成员进行声明,这样每个成员的访问都会受到不同关键字的限制. 继承:在php里边一个类可以继承另外一个类.继承的类实例化出来的对象既可以使用本类的成员,也可以使用父类成员. 多态:多种状态,在java里边方法“重载”体现多态.工厂设计模式也有多态体现. 1 在javascript面向对象里边的“封装” 在js里边封装体现两点:public公开的.private私有的 <…
/* @flow */ import type Watcher from './watcher' import config from '../config' import { callHook } from '../instance/lifecycle' import { warn, nextTick, devtools } from '../util/index' const queue: Array<Watcher> = [] let has: { [key: number]: ?tru…
/* * not type checking this file because flow doesn't play well with * dynamically accessing methods on Array prototype */ import { def } from '../util/index' const arrayProto = Array.prototype // Object.create 如果传入的是数组, 那么这个数组会被封装成一个对象,这个对象作为目标对象的__…