https://javascript.plainenglish.io/9-javascript-tricks-that-make-your-code-fantastic-4cf3d7880229
我一直喜欢报纸之类的东西,可以在较短的时间内提供足够的信息。在这里,我为前端开发列了一个比较数组的方法清单。介绍一些基于“属性”值对数组进行排序的方法。
本文初衷是想列举一些比较“多余”的API以及对应原生JS写法;后面发现API过多,精力有限,慢慢的变成记录那些有助于提高开发效率的API,希望对您有所帮助。对于那些,根据名字或者描述便能知道其实际用途的API,笔者未做Demo演示。各位看官可以查看对应官方文档便能快速应用于实际开发,Lodash中文API 上有详细介绍。
大师兄最近对一个工具库的使用上瘾了!这个给大家分享下。这是每个 JavaScript 程序员都应该掌握的工具:Ramda
一、axios Vue更新到2.0之后宣告不再对vue-resource更新,推荐使用axios,axios是一个用于客户端与服务器通信的组件,axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端javaScript工具。通俗来说可以实现客户端请求服务器端提供的服务获得数据。 源码与帮助:https://github.com/axios/axios 服务器端跨域支持请查看:http://www.cnblogs.com/best/p/6196202.html#_label2
如果我们想把某个东西转换成一个对象,我们需要传递具有这两个要求的东西:键和值。 满足这些要求的参数有两种类型:
JS 的基本数据类型有 Number,String,Boolean,Symbol,Null,Undefined,六种数据类型。一种引用类型 object。
本文介绍了什么是函数式编程,以及其在 JavaScript 中的运用。作者通过多个例子,包括使用 Ramda 和 Lodash 等函数式编程库,向你展示了如何使用函数式编程的方法来编写更干净、简洁、可读的代码。同时,作者也向你展示了如何使用这些库来提高代码的性能和可维护性。
本来是想发在代码审计知识星球里的一篇科普文章,因为最近知识星球似乎在和神秘组织对接,无法发表内容,所以发在博客里。Code-Breaking官方writeup拖了很久,主要是没时间,不过外面已经有很多同学的writeup了,所以问题不大。
如果您已经从头到尾通读了此书,请花一分钟的时间停下来回顾一下从第 1 章到现在的收获。相当漫长的一段旅程,不是吗?希望您已经收获了大量新知识,并用函数式的方式思考你的程序。
还记得当初入门前端开发的时候写过的 Hello World 么?一开始我们先创建了一个 HTML 文件,在 <body> 标签里写上网页内容;后来需要学习页面交互逻辑时,在 HTML markup 里增加一个 <script src="script.js"> 标签引入外部 script.js 代码,script.js 负责页面交互逻辑。
变量存储的不是对象自身,而是该对象的“内存地址”,换句话说就是一个对该对象的“引用”。
Sheila,携程资深前端开发工程师,关注前端性能优化;xqin,携程前端开发专家,CRN bundle分析平台开发者。
Lodash 通过降低 array、number、objects、string 等等的使用难度从而让 JavaScript 变得更简单。 Lodash 的模块化方法 非常适用于:
2019年初,Snyk的安全研究人员披露了流行的JavaScript库Lodash中一个严重漏洞的详细信息,该漏洞使黑客能够攻击多个Web应用程序,这个安全漏洞就是一个“原型污染漏洞”(JavaScript Prototype Pollution),攻击者可以利用该漏洞利用JavaScript编程语言的规则并以各种方式破坏应用程序。
英文 | https://blog.bitsrc.io/11-javascript-and-typescript-shorthands-you-should-know-690a002674e0
柯里化(Currying)[1]是一种关于函数的高阶技术。它不仅被用于 JavaScript,还被用于其他编程语言。
当前 toLocaleTimeString 方法只能获取到 12 小时制的时间('上午09:10:01' | '下午08:10:24')
在 Python 中,有几种方法可以合并两个或多个集合。您可以使用union()方法,该方法返回一个包含两个集合中所有项的新集合,或使用update()方法,将一个集合中的所有项插入另一个集合中:
近日,Go 核心开发团队终于宣布了 Go 1.18 正式版本的发布!这是一个大家期待很久的版本!Go 1.18 包含大量新功能:模糊测试、性能改进、工作区等,以及 Go 语言开源以来最大的一次语法特性变更 —— 支持泛型!
两个函数虽效果不同,但代码框架极为相似,逻辑冗余且僵硬,比较难实现复用。相对而言,函数式编程思维则会尽量将逻辑抽象拆解为可被复用的若干最小单位,同样的需求可能会这么实现:
本文首发于政采云前端团队博客:动态表单之表单组件的插件式加载方案 https://www.zoo.team/article/dynamic-form-loading-method
对于使用Javascript的每个人来说,可选链(Optional chaining)是游戏的规则的改变者。它与箭头函数或let和const一样重要。我们讨论下它可以解决什么问题,它如何工作,以及它如何使得你的生活更加轻松。
在JavaScript中,通常情况下,您希望知道对象文字内容是否已更改,即当用户更新/编辑其信息时。大多数开发人员通常会将信息保存到服务器,而不一定弄清楚用户是否真的改变了一两件事。
在这篇文章中,我将分享12个非常有用的JavaScript技巧。这些技巧可以帮助你减少并优化代码。 1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用||(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。我们来看看这个简单的例子: function Account(cash) { this
Immutable数据就是一旦创建,就不能更改的数据。每当对Immutable对象进行修改的时候,就会返回一个新的Immutable对象,以此来保证数据的不可变
相比于JavaScript开发人员的数量,目前JavaScript框架、类库和工具的数量似乎更多一些。截至2017年5月,GitHub上的快速搜索显示,有超过110万个JavaScript项目。npmjs.org有50万个可用的软件包,每月下载量近100亿次。
谈及如今欣欣向荣的前端圈,不仅有各类框架百花齐放,如Vue, React, Angular等等,就打包工具而言,发展也是如火如荼,百家争鸣;从早期的王者Browserify, Grunt,到后来赢得宝座的 Gulp, 以及独树一帜的 fis3, 以及下一代打包神器 Rollup ;在 browserify,grunt,gulp,rollup,webpack 可以一窥其中部分对比。在本文要探究的是,当前打包工具绝对霸者 Webpack。 Webpack,当前各大主流框架默认配备的打包方案,对其如何使用,已有较
11、前端技术体系 (1)多版本/覆盖 时间戳 发布新版本回滚 (2)ssr & 同构 (3)webpack vendor:commonchunk external:全局变量 默认css处理
在 Node 14 的项目里,我们依然能看到混杂着 CommonJS(CJS) 和 ES Modules(ESM) 风格的代码。CJS 使用的是 require() 和 module.exports;ESM 用的是 import 和 exports。 首先 ESM 和 CJS 完全是两套不同的设计。表面上,ESM 使用起来虽然有点接近 CJS,但是实现差异巨大。
在这篇文章中,我将分享12个非常有用的JavaScript技巧。这些技巧可以帮助你减少并优化代码。 1) 使用!!将变量转换成布尔类型 有时,我们需要检查一些变量是否存在,或者它是否具有有效值,从而将它们的值视为true。对于做这样的检查,你可以使用||(双重否定运算符),它能自动将任何类型的数据转换为布尔值,只有这些变量才会返回false:0,null,"",undefined或NaN,其他的都返回true。我们来看看这个简单的例子: Js代码 function Account(cash) {
https://www.lodashjs.com/docs/lodash.throttle
自从React hooks发布以来已经有一段时间了,我很喜欢这个特性。这个hooks把我勾上了!
英文 | https://javascript.plainenglish.io/13-methods-to-remove-filter-an-item-in-an-array-and-array-of-objects-in-javascript-f02b71206d9d
柯里化, 即 Currying 的音译。Currying 是编译原理层面实现多参函数的一个技术。
这是 学习源码整体架构系列第三篇。整体架构这词语好像有点大,姑且就算是源码整体结构吧,主要就是学习是代码整体结构,不深究其他不是主线的具体函数的实现。文章学习的是打包整合后的代码,不是实际仓库中的拆分的代码。
重构工作一开始非常简单,就是到处安装 npm,这其实就是在快速安装生产依赖项,就像一个大学生在做桶支架,而不关心第二天早上的情况一样。
我一直喜欢报纸之类的东西,可以在较短的时间内提供足够的信息。在这里,我为前端开发优化创建了一个新的学习列表。
两年前,我写了一篇有关module/nomodule技术的文章(译者注:原文地址https://philipwalton.com/articles/deploying-es2015-code-in-production-today/,文末有此文的译文链接),这项技术允许你在编写ES2015+代码时,使用打包器和转换器生成两个版本的代码库,一个具有现代语法的版本(通过 <scripttype="module">加载)和一个使用ES5语法的版本(通过 <scriptnomodule>加载)。该技术允许你向支持模块(译者注:指ECMA制定的标准的export/import模块语法及其加载机制,又称为ES Module、ESM、ES6 Module、ES2015 Module,下文中将出现很多"模块"一词,都是这个含义)的浏览器发送更少的代码,现在大多数Web框架和CLI都支持它。
很多文章都在教我们 ES6/7/8/9/11/12 相关的规范,但如何在我们的项目中使用这些 ES 规范?有什么需要注意的点?
什么是函数式编程(Functional Programming, FP):FP 是编程范式之一.(还有面向过程编程、面向对象编程)
序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。
我们都知道 JavaScript 是个多范式语言,它既支持过程式编程,又支持函数式编程,两者分别适用于不同的场合。在同步环境下,两者各有优缺点,甚至有时候过程式会更简明一些,但在异步环境下(最典型的场景是一个 Ajax 请求完成后紧接着执行另一个 Ajax 请求),由于无法控制执行和完成的顺序,所以就无法使用传统的过程式写法,函数式就会展现出其优势。
当收集浏览器端每个用户核心性能指标时,可通过 web-vitals 收集并通过 sendBeacon 上报到打点系统。
首先,我们需要了解NPM的重要性。NPM不仅仅是一个包管理器,它还是一个强大的工具,能够帮助开发者在全球范围内共享和重用代码。通过NPM,你可以轻松地安装、更新和管理依赖关系,使得项目开发更加高效和系统化。
在掌握JavaScript这门灵活而强大的编程语言的过程中,不仅仅是学习基础知识那么简单。今天,我将为大家分享20个JavaScript的专业技巧,这些可能对初学者来说并不那么熟知。通过对比初学者(或者说“新手”)和经验丰富的开发者(或者说“专家”)在这些技巧上的不同处理方式,你可以提升你的编码技能,编写出更高效、简洁、优雅的JavaScript代码。
大家肯定都发现了,现在越来越多的前端工具支持用JavaScript来进行自定义配置了。(比如说Babel或ESLint)不管大家之前出于什么原因选择JSON来写配置信息,从现在开始不要这么干了,改用JavaScript吧。
英文 | https://javascript.plainenglish.io/20-javascript-tricks-and-shorthands-1fa2576b2261
如果你正在筹划新的前端项目或者重构现有项目,那么你需要认识到现在的前端开发环境已经今非昔比,这其中有太多的选择了:React、Flux、Angular、Aurelia、Mocha、Jasmine、Babel、TypeScript、Flow…… 它们的本意是将开发简单化,却无形中提高了学习成本,也给未来项目的维护带来了不确定性。 好在这一现象正在退热,优胜劣汰,优秀的项目慢慢沉淀下来,开发方式也越来越清晰。有些开发者正在尝试使用基于上述技术的框架进行开发,也在一定程度上减少了学习成本。 本文中主要介绍了一些
领取专属 10元无门槛券
手把手带您无忧上云