摘要: 在编程语言理论中,惰性求值(英语:Lazy Evaluation),又译为惰性计算、懒惰求值,也称为传需求调用(call-by-need),是一个计算机编程中的一个概念,它的目的是要最小化计算机要做的工作。它有两个相关而又有区别的含意,可以表示为“延迟求值”和“最小化求值”,除可以得到性能的提升外, 阅读全文
posted @ 2020-11-21 21:48 浅笑· 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 块级函数 严格模式下,在 ES6 之前应禁止使用。ES6 开始可以使用,函数的作用域为声明该函数的块内部。非严格模式下应禁止使用。 if(true) { function test() { //块级函数 console.log(1); } } test(); 直接修改对象的 prototype 原型 阅读全文
posted @ 2020-11-21 21:46 浅笑· 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 定义 Encapsulate a request as an object, thereby letting you parameterize other objects with different requests, queue or log requests,and support undoa 阅读全文
posted @ 2020-11-21 21:45 浅笑· 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的js模块化规范有Commonjs、AMD、CMD以及ES6的模块系统 一、CommonJS Node.js是commonJS规范的主要实践者,它有四个重要的环境变量 阅读全文
posted @ 2020-11-21 21:42 浅笑· 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 事件驱动和发布-订阅 事件驱动架构是建立在软件开发中一种通用模式上的,这种模式被称为发布-订阅或观察者模式。 在事件驱动架构中,至少有两个参与者:主题(subject)和观察者(observer)。 主题就像调频收音机一样,向有兴趣收听该主题所说内容的观察者进行广播。 观察者可能只有一个,也可能有一 阅读全文
posted @ 2020-11-21 21:39 浅笑· 阅读(434) 评论(0) 推荐(0) 编辑
摘要: 当你想到路由时,通常会想到类似 react 之类的库。但实际上,这些库和框架仍然使用 vanilla JavaScript。那么该怎么实现呢? 我希望这个“JavaScript 路由教程”能够帮你了解如何用原生 js 写出自己的路由。 简介 我遇到了很多出于各种原因想要自己创建路由的人。既然你看到本 阅读全文
posted @ 2020-11-21 21:36 浅笑· 阅读(406) 评论(0) 推荐(0) 编辑
摘要: 报错详尽信息 Uncaught DOMException: Failed to execute 'toDataURL' on 'htmlCanvasElement': Tainted canvases may not be exported. 前言 最近在做一个创意类的图片合成工具,大概齐就是通过拼 阅读全文
posted @ 2020-11-21 21:34 浅笑· 阅读(875) 评论(0) 推荐(0) 编辑
摘要: TypeScript 2.3 增加了对声明泛型参数默认类型的支持,允许为泛型类型中的类型参数指定默认类型。 接下来看看如何通过泛型参数默认将以下react组件从 js (和jsX)迁移到 TypeScript (和TSX): class Greeting extends react.Componen 阅读全文
posted @ 2020-11-21 21:30 浅笑· 阅读(3891) 评论(0) 推荐(0) 编辑
摘要: 1、Commonjs 之 exports和require用法 Commonejs规定每个文件是一个模块。将一个JavaScript文件直接通过script标签引入页面中,和封装成CommonJS模块最大的不同在于:前者的顶层作用域是全局作用域,在进行变量及函数声明时会污染全局环境;而后者会形成一个属 阅读全文
posted @ 2020-11-21 21:29 浅笑· 阅读(2520) 评论(0) 推荐(0) 编辑
摘要: 在 ES6 之前,js 中的对象字面量(也称为对象初始化器)是非常基础的。可以定义两种类型的属性: 键值对 {name1: value1} 获取器 { get name(){..} } 和 设置器 { set name(val){..}} 的计算属性值 var myObject = { myStri 阅读全文
posted @ 2020-11-21 21:14 浅笑· 阅读(975) 评论(0) 推荐(0) 编辑
摘要: 有这样一个场景,客户端运行很久,但是法务部和数据部需要收集用户的一些信息,这些信息收集好之后需要进行相应的数据处理,之后上报到服务端。客户端提供一个纯粹的 js 执行引擎,不需要 WebView 容器。iOS 端有成熟的 JavaScriptCore、Android 可以使用 V8 引擎。这样一个引 阅读全文
posted @ 2020-11-21 20:48 浅笑· 阅读(2170) 评论(0) 推荐(0) 编辑
摘要: node 的fs文档密密麻麻的 api 非常多,毕竟全面支持对文件系统的操作。文档组织的很好,操作基本分为文件操作、目录操作、文件信息、流这个大方面,编程方式也支持同步、异步和 Promise。 本文记录了几个文档中没详细描写的问题,可以更好地串联fs文档思路: 文件描述符 同步、异步与 Promi 阅读全文
posted @ 2020-11-21 20:46 浅笑· 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 变量类型与存储空间 栈内存和堆内存 基本数据类型 string、number、null、undefined、boolean、symbol(ES6新增) 变量值存放在栈内存中,可直接访问和修改变量的值基本数据类型不存在拷贝,好比如说你无法修改数值1的值 引用类型 Object Function Reg 阅读全文
posted @ 2020-11-21 20:45 浅笑· 阅读(446) 评论(0) 推荐(0) 编辑
摘要: js 的动态类型有好有坏。好的一面,不必指明变量的类型。不好的是,咱们永远无法确定变量的类型。 typeof运算符可以确定 js 中的6种类型: typeof 10; // => 'number' typeof 'Hello'; // => 'string' typeof false; // => 阅读全文
posted @ 2020-11-21 20:42 浅笑· 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 1.什么是解构? ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构。它在语法上比ES5所提供的更加简洁、紧凑、清晰。它不仅能减少你的代码量,还能从根本上改变你的编码方式。 2.数组解构 以前,为变量赋值,我们只能直接指定值,比如 let a = 1; let b = 2; 阅读全文
posted @ 2020-11-21 20:40 浅笑· 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 友情提示:想要更好的理解js继承方式,须了解构造函数、原型对象、实例化对象、原型链等概念 第一种:原型链继承利用原型链的特点进行继承 function Parent(){ this.name = 'web前端'; this.type = ['js','html','css']; } Parent.p 阅读全文
posted @ 2020-11-21 20:36 浅笑· 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 在本文中,我们将探讨 “二次方” 和 “n log(n)” 等术语在算法中的含义。 在后面的例子中,我将引用这两个数组,一个包含 5 个元素,另一个包含 50 个元素。我还会用到 JavaScript 中方便的 performance API 来衡量执行时间的差异。 const smArr = [5 阅读全文
posted @ 2020-11-21 20:34 浅笑· 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 我们知道现在的开发人员都使用 来代替 ==,为什么呢? 我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用 。 这些都导致许多程序员将该语言的一部分排除在外,并将其视为一种缺陷,而不是去扩大他们的对该过程的理解。 下面通过两个使用案例,说明使 阅读全文
posted @ 2020-11-21 20:33 浅笑· 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 软件应用程序在计算机的主存储器中运行,我们称之为随机存取存储器(RAM)。JavaScript,尤其是 Nodejs (服务端 js)允许我们为终端用户编写从小型到大型的软件项目。处理程序的内存总是一个棘手的问题,因为糟糕的实现可能会阻塞在给定服务器或系统上运行的所有其他应用程序。C 和 C++ 程 阅读全文
posted @ 2020-11-21 20:30 浅笑· 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 前面的话 根据 JavaScript 的运行环境,锁定它为单线程,任务需要排队执行,如果网站资源比较大,这样会导致浏览器加载会很慢,但实际上并没有,大家肯定立刻想到了同步和异步。 所谓的同步和异步也是在排队,只是排队的地方不同。 同步和异步 同步任务进入主线程排队,异步任务进入事件队列中排队 同步任 阅读全文
posted @ 2020-11-21 20:26 浅笑· 阅读(399) 评论(0) 推荐(0) 编辑