美文网首页
JavaScript-基础概念

JavaScript-基础概念

作者: zhulichao | 来源:发表于2020-07-23 09:19 被阅读0次

柯里化

柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。柯里化声称“如果你固定某些参数,你将得到接受余下参数的一个函数”。如对于有两个变量的函数yx,如果固定了 y = 2,则得到有一个变量的函数 2x。

不可变数据

不可变数据(Immutable Data)的思想就是,一旦创建就不能被修改的数据,所有对Immutable Data的改变,最终都会返回一份新复制的数据,各自的数据并不会互相影响。

函数式编程

函数式编程是一种编程范式,和面向对象的编程方式一样,是一种编程思想。它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。它的原理将电脑运算视为函数的计算,它的基础是λ演算,λ演算的函数可以接受函数当作输入和输出。最主要的特征是,函数是第一等公民。和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。和过程化编程相比,函数式编程里函数的计算可随时调用。函数式编程认为,只有纯的没有副作用的函数,才是合格的函数。

单页应用(SPA)和多页应用(MPA)

单页应用将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HTML、JavaScript和CSS。一旦页面加载完成了,SPA不会因为用户的操作而进行页面的重新加载或跳转。取而代之的是利用JavaScript动态的变换HTML的内容,从而实现UI与用户的交互。由于避免了页面的重新加载,SPA可以提供较为流畅的用户体验,但不利于SEO。MVVM这类最适合做单页面应用。

多页面一般每个页面都有一个入口页面,页面跳转用普通的<a href=\"\"></a>,会进行整个页面的刷新。

发布订阅模式

订阅发布模式定义了一种一对多的依赖关系,让多个订阅者对象同时监听某一个主题对象。这个主题对象在自身状态变化时,会通知所有订阅者对象,使它们能够自动更新自己的状态。当一个对象的改变需要同时改变其它对象,而且它还不知道具体有多少对象需要改变时,就可以使用订阅发布模式了。

观察者模式与发布订阅模式很像,虽然两种模式都存在订阅者和发布者(具体观察者可认为是订阅者、具体目标可认为是发布者),区别是观察者模式是由具体目标调度的,而发布订阅模式是统一由调度中心调的,所以观察者模式的订阅者与发布者之间是存在依赖的,而发布订阅模式则不会。

纯函数

纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,JavaScript中指不依赖于且不改变它作用域之外的变量状态的函数。只要是跟函数外部环境发生的交互就都是副作用,副作用可能包含但不限于:

> 更改文件系统
> 往数据库插入记录
> 发送一个 http 请求
> 可变数据
> 打印/log等IO操作
> 获取用户输入
> DOM 查询
> 访问系统状态
> 访问系统时钟

相关文章

  • JavaScript-基础概念

    柯里化 柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且...

  • 作用域链,闭包,原型链

    Javascript-基础概念总结 【作用域】javascript中的作用域可以理解为一个语句执行的环境大小,有全...

  • React Native 学习资料汇总

    JavaScript: 1、JavaScript-语言基础速览 2、JavaScript 中文教程 3、JavaS...

  • javascript-事件基础和事件绑定

    javascript-事件基础和事件绑定 一、事件驱动 1.1事件 javascript侦测到的用户的操作(点击、...

  • JavaScript-基础

    JavaScript组成 ECMAScript:将人类的语言翻译为计算机语言(计算机只能识别0/1),同时将计算机...

  • 01、JavaScript-基础

    每天一句:没有方向感,我们不知道自己走向哪里。没有方向感,我们所有的努力就缺乏一个标准,我们每时每刻所有的努力都处...

  • JavaScript-基础2

    最近参加了一次为时两天的JavaScript培训,回顾课程内容并进行整理,其中参考了如下两篇老师的文章。 Java...

  • JavaScript 数组与伪数组简介

    JavaScript-数组与伪数组简介 本文章面向小白 数组与伪数组的概念 数组与伪数组从何而来在JavaScri...

  • JavaScript-字符串对象方法应用

    JavaScript-字符串对象方法应用

  • Javascript 机器学习资源汇总

    翻译 Machine Learning in Javascript- A compilation of Resou...

网友评论

      本文标题:JavaScript-基础概念

      本文链接:https://www.haomeiwen.com/subject/mdndhktx.html