
JavaScript
文章平均质量分 66
JavaScript基础知识
耳东蜗牛
社会的道路上越走越远,希望技术的道路上可以越走越近。
展开
-
js - 理解函数组合
怎么理解函数组合compose(f, g, t) => x => f(g(t(x))函数组合,字面意思将多个函数有序组合起来。有序组合的原因是不同的顺序返回的函数是不同函数。var { compose } = require('ramda')const f = x => x + 1;const g = x => x * 2;const fg1 = compose(f, g);const fg2 = compose(g, f);console.log(fg.原创 2021-04-19 23:12:08 · 579 阅读 · 1 评论 -
js - 理解函数柯里化
怎么理解柯里化柯里化的意思就是将一个多元函数,转换成一个依次调用的单元函数。curry 的这种用途可以理解为:参数复用。本质上是降低通用性,提高适用性。f(a,b,c) → f(a)(b)(c)var add = function(x) { return function(y) { return x + y; }; };const increment = add(1);increment(10); // 11var { curry } = require('lodash原创 2021-04-14 20:29:02 · 310 阅读 · 1 评论 -
typeof & instanceof
7种数据类型number, string, object, boolean, function, undefined, symboltypeof 1 // "number"typeof '1' // "string"typeof true // "boolean"typeof function() {} // "function"typeof [] // "object"typeof {} // "object"typeof null // "object"type原创 2021-03-15 11:15:17 · 257 阅读 · 0 评论 -
js继承图解
继承是面向对象编程中讨论最多的话题。很多面向对象语言都支持两种继承:接口继承和实现继承。前者只继承方法签名,后者继承实际的方法。接口继承在 ECMAScript 中是不可能的,因为函数没有签名。实现继承是 ECMAScript 唯一支持的继承方式,而这主要是通过原型链实现的。原型知识前置var Person = function(name){ this.name = name; // tip: 当函数执行时这个 this 指的是谁?};Person.prototype.getName.原创 2020-12-05 02:32:49 · 627 阅读 · 0 评论 -
js函数的参数都是按值传递怎么理解
ECMAScript 中所有函数的参数都是按值传递的。这意味着函数外的值会被复制到函数内部的参数中,就像从一个变量复制到另一个变量一样。如果是原始值,那么就跟原始值变量的复制一样,如果是引用值,那么就跟引用值变量的复制一样。对很多开发者来说,这一块可能会不好理解,毕竟变量有按值和按引用访问,而传参则只有按值传递。原始数据类型这里就不说了。只说一下引用数据类型。function setName(obj) { obj.name = "Nicholas"; } let person = .原创 2020-11-14 21:38:37 · 498 阅读 · 0 评论 -
如何使用一行代码遍历二叉树累加求值?
问题背景如何想起里这个问题的,主要是在给成员讲解数组reduce方法的时候想到的。传给 reduce()和 reduceRight()的函数接收 4 个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项讲到函数返回的任何值都会作为第一个参数自动传给下...原创 2020-03-23 20:47:38 · 610 阅读 · 0 评论 -
JavaScript基础内容
JavaScript基础内容1. 词法结构(1). 字符集Javascript程序使用UTF-16编码的Unicode字符集编写。Unicode是ASCII和Latin-1的超集。(2). 大小写Javascript区分大小写,html不区分大小写,xhtml区分大小写。在html中标签和属性名可以使用大写,也可以小写,而在J原创 2017-04-23 19:12:06 · 1726 阅读 · 0 评论 -
JavaScript函数,作用域以及闭包
JavaScript函数,作用域以及闭包1. 函数(1). 函数定义:函数使用function关键字定义,它可以用在函数定义表达式或者函数声明定义。a. 函数的两种定义方式:* function functionName() {}* var functionName = function(){}b. 两种函数定义不同之处1). 声明提前问原创 2017-04-30 01:27:53 · 3734 阅读 · 2 评论 -
JavaScript之this
JavaScript之this1. 为什么使用this先看个例子:function identity() { return this.name.toUpperCase();}function speak() { return "Hello, i'm " + identity.call(this);}var me = { name: 'rod chen'}原创 2017-04-30 22:28:04 · 1346 阅读 · 0 评论 -
JavaScript之原型
JavaScript之原型1. 混合对象类(1) Javascript中的类相当长的一段时间里,JavaScript只有一些近似类的语法元素(比如 new 和 instanceof ),不过在后来的ES6中新增了一些元素,比如 class 关键字。这是不是意味着JavaScript中实际上有类呢?简单来说:不是(2) 类的继承a. 多态先原创 2017-05-01 23:22:43 · 1296 阅读 · 0 评论 -
JavaScript之异步 - 基本概念
JavaScript之异步 - 基本概念1.分块的程序var data = $.ajax({ url: '/Http/GetAction', data: { username: "Rod Chen" }, type: 'GET',原创 2017-05-12 20:28:08 · 1724 阅读 · 0 评论 -
JavaScript之异步 - 回调函数
JavaScript之异步 - 回调函数1. 回顾之前的概念 处理所有事件(异步函数调用)的单线程(一次一个)事件循环队列。在函数内部,语句以可预测的顺序执行(在编译器以上的层级!),但是在函数顺序这一层级,事件(也就是异步函数调用)的运行顺序可以有多种可能。函数都是作为回调( callback)使用的,因为它是事件循环“回头调用”到程序中的目标,队列处理到这个原创 2017-06-04 17:27:51 · 2045 阅读 · 0 评论 -
JavaScript之异步 - Promise (一)
JavaScript之异步 - Promise (一)1. 背景从前面的文章中得到回调表达程序异步和管理并发的两个主要缺陷:缺乏顺序性和可信任性。回忆一下,我们用回调函数来封装程序中的 continuation,然后把回调交给第三方(甚至可能是外部代码),接着期待其能够调用回调,实现正确的功能。从之前的文章中也可以看到存在着信任问题。但是,如果我们能够把控制反转再反转回原创 2017-06-05 22:27:25 · 2117 阅读 · 0 评论 -
JavaScript之异步 - Promise (二)
JavaScript之异步 - Promise (二)1. 链式流(1) 介绍Promise的单步执行this-then-that并不是唯一的机制,我们可以将多个promise连接一起表示一系列异步步骤。这种方式可以实行的关键在于两个Promise固有行为特性。 每次你对Promise调用then(),都会创建一个新的Promise,我们可以将其连原创 2017-06-10 23:11:10 · 1665 阅读 · 0 评论 -
JavaScript之事件
JavaScript之事件1. 概念事件流描述的是从页面中接收事件的顺序,也可理解为事件在页面中传播的顺序。事件就是用户或浏览器自身执行的某种动作。诸如click(点击)、load(加载)、mouseover(鼠标悬停)。事件处理程序响应某个事件的函数就叫事件处理程序(或事件侦听器)。2. 事件的触发有四个阶段 a. docum原创 2017-06-11 22:44:41 · 996 阅读 · 0 评论 -
jQuery
jQueryjQuery能让开发者在文档中轻松找到关心的元素,并对这些元素进行操作: 添加内容,编写HTML属性和CSS属性、定义事件处理程序以及执行动画。它还拥有Ajax工具来发起HTTP请求,以及一些通用的工具函数来操作对象和数组。jQuery的特性:丰富强大的语法(css选择器),用来查询文档元素高效的查询方法,用来找到与css选择器匹配的文档元素集一套有原创 2017-07-02 00:38:22 · 2269 阅读 · 1 评论 -
JavaScript之正则表达式
正则表达式的意义在于通过开发人员编写匹配模式,然后可以通过这个匹配模式去校验用户的输入是否符合开发人员编写的模式。1. 创建正则表达式以及正则表达式的规则(1) 创建正则表达式a. 直接量语法/pattern/attributes这里的pattern是一个正则表达式而不是一个字符串,attributes 是一个可选的字符,包含属性 "g"、"i" 和 "m",分别用于指定全局匹原创 2018-04-08 10:53:55 · 2198 阅读 · 0 评论 -
浏览器的多线程与js引擎的单线程
1. 浏览器的线程与进程(1) 进程与线程进程学术上说,进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。我们这里将进程比喻为工厂的车间,它代表CPU所能处理的单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。线程在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运原创 2018-04-10 14:53:43 · 6315 阅读 · 2 评论 -
Ajax
Ajax简介AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。AJAX 不是新的编程语言,而是一种使用现有标准的新方法。AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。AJAX 是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。XMLHttp...原创 2018-05-02 22:51:56 · 632 阅读 · 0 评论 -
JSON
Accept & Content-TypeAccept 请求头用来告知客户端可以处理的内容类型,这种内容类型用MIME类型来表示。借助内容协商机制, 服务器可以从诸多备选项中选择一项进行应用,并使用 Content-Type 应答头通知客户端它的选择。浏览器会基于请求的上下文来为这个请求头设置合适的值,比如获取一个CSS层叠样式表时值与获取图片、视频或脚本文件时的值是不同的。具体内容可以访...原创 2018-05-03 23:46:38 · 553 阅读 · 0 评论