深入理解JavaScript程序设计

今天没事情回顾了一下我在去年4-6月份学习JavaScript程序设计的笔记。发现书到用时方恨少,感觉自己学的还不够深,准备抽时间啃一下《JavaScript高级程序设计》,同时深入了解一下avaScript程序设计中几个比较难懂的模块。 1.预编译 预编译主要用来解决所有的JavaScrip代码执行顺序的问题。javascript相对于其它语言来说是一种弱类型的语言,在其它如java语言中,程序的执

深入响应式原理

说到响应式原理其实就是双向绑定的实现,说到 双向绑定 其实有两个操作,数据变化修改dom,input等文本框修改值的时候修改数据 1.数据变化->修改dom 2.通过表单修改value->修改数据 先说第一步,数据变化更改DOM的一个前提条件是能够知道数据什么时候变了,像这种需求如果不考虑兼容性的话,用屁股想都知道可以通过 getter 和 setter 来实现,每当

打包工具webpack和热加载深入学习

本次小编呢,为大家带来一篇深入了解打包工具webpack。 我们今天使用的是webpack3.8.1版本的,我们学习使用3.8.1更稳定些,并学习自己如何配置文件,最新版本不需要自己配置文件,但我们需要知道配置文件的原理 最新版本的webpack已经更新到4.32.2版本了   首先介绍以下什么是webpack:   webpack它是一个前端资源加载或打包工具。资源(如:imgcssjsjson等)&#13

深入 JavaScript 中的对象以及继承原理

ES6引入了一个很甜的语法糖就是class,class可以帮助开发者回归到Java时代的面向对象编程而不是ES5中被诟病的面向原型编程.我也在工作的业务代码中大量的使用class,很少去触及prototype了. 两面性: class语法糖的本质还是prototype,所以应该回归到写prototype上. 既然有class的写法了,而且继承上也相比原型好写,好理解许多,所以应该向前看,摒弃掉以前的prototype写法.

JavaScript 原型的深入指南

摘要:理解prototype。 原文:JavaScript原型的深入指南 作者:前端小智 Fundebug经授权转载,版权归原作者所有。 不学会怎么处理对象,你在JavaScript道路就就走不了多远。它们几乎是JavaScript编程语言每个方面的基础。事实上,学习如何创建对象可能是你刚开始学习的第一件事。 对象是键/值对。创建对象的最常用方法是使用花括号{},并使用点表示法向对象添加属性和方法。 letani

01. JavaScript基础总结深入

01.数据类型 1.分类(2大类)*基本(值)类型*Number:任意数值*String:任意文本*Boolean:true/false*undefined:undefined*null:null*对象(引用)类型*Object:任意对象*Array:特别的对象类型(下标/内部数据有序)*Function:特别的对象类型(可执行)2.判断*typeof:*可以区别:数值,字符串,布尔值,undefined,function*不能区别:null与对象,一般对象与数组*instanceof*专门用来

JavaScript篇 深入理解JavaScript函数

JavaScript中的函数 1.函数的定义 两种定义形式:  通过函数定义表达式来定义  通过函数声明语句来定义 函数声明语句定义一个函数 //计算阶乘的递归函数 functionfactorial(x){ if(x<=1)return1; returnx*factotial(x-1); } 函数定义表达式定义一个函数 vars=functio

对Promise的一些深入了解

1.介绍promise和模仿Promise.all和Promise.race promise的设计主要是解决回调地狱(接收结果用回调函数来处理,但必须传入回调函数)的问题,由一层层嵌套回调函数改为由then来执行。 例如: //callback用于接收返回结果,异步方式 fs.readFile("filePath",callback); //还有一种方式 cosnt{promises:fs}=require("fs");//用promise包装fs模块,已经实现 fs.readFile("filePath

深入理解枚举属性与for-in和for-of

首先要分清什么是可枚举属性,什么是不可枚举属性 1.可枚举属性 在JavaScript中,对象的属性分为可枚举和不可枚举之分,它们是由属性的enumerable值决定的。可枚举性决定了这个属性能否被for…in查找遍历到。 1.1怎么判断属性是否可枚举 js中基本包装类型的原型属性是不可枚举的,如Object,Array,Number等,如果你写出这样的代码遍历其中的属性: varnum=newNumber(); for(varproinnum){ console.l

深入理解JavaScript单例模式 (Singleton Pattern)

概念 单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。 核心:确保只有一个实例,并提供全局访问。 实现思路 一个类能返回对象一个引用(永远是同一个)和一个获得该实例的方法(必须是静态方法,通常命名为getIntance);当我们调用这个方法时,类持有的引用不为空则返回这个引用,如果为空须创建

【学习笔记】深入理解async/await

参考资料:理解javaScript中的async/await,感谢原文作者的总结,本文在理解的基础上做了一点小小的修改,主要为了加深自己的知识点掌握 学完了Promise,我们知道可以用then链来解决多层回调问题,但是这还不是最理想的操作,我们需要调用很多个then链才能达到要求,那么有没有一种更简便代码量更少的方式达到then链相同的结果呢?asynv和await就很好地解决了这个问题,首先

深入理解ES6之——代理和反射(proxy)

通过调用newproxy()你可以创建一个代理来替代另一个对象(被称为目标),这个代理对目标对象进行了虚拟,因此该代理与该目标对象表面上可以被当做同一个对象来对待。 创建一个简单的代理 当你使用Proxy构造器来创建一个代理时,需要传递两个参数:目标对象以及一个处理器,后者是定义了一个或多个陷阱函数的对象。如果未提供陷阱函数,代理会对所有操作采取默认行为

JavaScript深入之从原型到原型链(转载)

构造函数创建对象 我们先使用构造函数创建一个对象: functionPerson(){ } varperson=newPerson(); person.name='Kevin'; console.log(person.name)//Kevin 在这个例子中,Person就是一个构造函数,我们使用new创建了一个实例对象person。 很简单吧,接下来进入正题: prototype&

JavaScript之深入函数(二)

  上一篇我们主要讲解了函数的执行过程和原理,本篇我们将介绍函数的另外两个特殊表现:闭包和立即执行函数。   一  闭包   1, 闭包的形成   之前我们提到,函数执行完毕,马上就会销毁自己的AO对象。但是如果遇到下面这种情况:有子函数的定义,并将子函数返回。它真的就完全销毁了自己的AO对象吗? 1functionfn(){ 2vara=1; 3function

深入理解es6(上)

一、let和const 1、let与var的区别 不存在变量提升 块级作用域 不允许重复声明 2、const常量 const与let一样,唯一区别在于声明的常量不能被修改 二、解构赋值 es6按照一定模式,从数组和对象中提取值,对变量进行赋值,被称为解构 1、数组的解构 "模式匹配",只要等号两边的模式相同,左边的变量就会被赋予对应的值,如果右边不是数组就会报错 基本用法: let[a,b,c]=[1,2,3]//a=1,b=2

深入理解es6(下)

一、symbol javascript基本数据类型: null、undefined、number、boolean、string、symbol ES6引入了一种新的原始数据类型Symbol,表示独一无二的值(随机生成的一个永远都不会重复的id串) lets=Symbol(); typeofs //"symbol" 二、Set和Map 1、Set() 是es6提供的一种新的数据结构,类似于数组,但是set里面的数据具有唯一性 consts=newSet(); Set实例的属性和方法 letset=newSe

JavaScript之深入对象(一)

  在之前的《JavaScript对象基础》中,我们大概了解了对象的创建和使用,知道对象可以使用构造函数和字面量方式创建。那么今天,我们就一起来深入了解一下JavaScript中的构造函数以及对象的原型及原型链。   一    构造函数     1,什么是构造函数         Javascript中使用构造函数的目的是批量创建拥有相同属性的不同对象。         实

JavaScript之深入函数(一)

  在任何编程语言中,函数的功能都是十分强大的,JavaScript也不例外。之前已经讲解了函数的一些基本知识,诸如函数定义,函数执行和函数返回值等,今天就带大家深入了解JavaScript中函数的原理及执行过程。   一  函数参数     1,声明函数时可以添加参数,相当于在函数内部隐式的声明了变量。它的学名叫形式参数,简称形参,在执行函数使实际传

JavaScript之深入对象(二)

上一篇随笔讲解了构造函数、原型及原型链相关的知识,今天让我们一起来探讨另一个问题:this。   一    this的指向     1, 函数预编译过程中,this指向window   我们在讲解函数预编译过程的时候提到,函数在将要被执行时,会在[[scope]]属性中插入一个AO对象,AO对象包含了函数的形参、函数内声明的变量及子函数。实际上AO对象还有两个属性:this和a

深入理解设计模式(序):常用的7大设计原则

面向对象设计的目标之一在于支持可维护性复用,一方面需要实现设计方案或者源码的重用,另一方面要确保系统能够易于扩展和修改,具有较好的灵活性。常用的设计原则有七个原则: 一、单一职责原则(singleresponsibilityprinciple,SPR) Thereshouldneverbemorethanonereasonforaclasstochange 当一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或