• 快速了解 React Hooks 原理
    我们大部分 React 类组件可以保存状态,而函数组件不能?React 16.8 新出来的Hook可以让React 函数组件具有状态,并提供类似 componentDidMount和componentDidUpdate等生命周期方法。useState hook 的参数是 state 的初始值,返回一个包含两个元素的数组:当前state和一个用于更改state 的函数。由于Hook以某种特殊方式创建这些状态,并且在函数组件内也没有像setState函数来更改状态,因此 Hook 需要一个函数来更新每个状态。使用该对象,React可以跟踪属于组件的各种元数据位。其中做的一件事设置 Hooks 数组。它开始是空的, 每次调用一个hook时,React 都会向该数组添加该 hook。
  • 【第1726期】JavaScript中的“黑话”
    正文从这开始~~因为球是圆的,所以不论发生什么都有可能,对这点我是深信不疑的,但最近我总是在怀疑,JavaScript也是圆的!而本文涉及到的“黑话”,其实是一些利用语言的特征使用的一些不常见的奇淫技巧,JavaScript的语法是十分简单灵活的,在项目中建议大家遵从ESLint规范编写可维护性的代码,各路神仙们也应该进行自我约束,毕竟“黑话”也并不全是什么好的东西,如果很多话可以直接讲,何必拐弯抹角的去说呢?在JavaScript中,&只能进行位运算。
  • 面向前端工程师的Nodejs入门手册(三)
    前面两篇从前端入门的视角去学习认识了Nodejs,接下来将真正从实战角度来看看Nodejs能做什么,如何从零到一的去完成你的全栈项目。接下来进入新的知识点,Nodejs与缓存系统。Nodejs与缓存系统如果要从前端工程师进阶全栈,则必须要了解一下缓存系统,这里介绍的缓存系统以Redis作为示例,来看看Nodejs是如何操作Redis缓存系统的,再通过缓存系统的使用场景,来看看它能干什么。所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Redis服务器能接收更新的值。看得出来使用最多的包就是redis包了,我们在本地进行安装。npm i --save redis接下来使用redis包暴露的createClient方法连接docker启动好的redis。
  • 处理 JS中 undefined 的 7 个技巧
    它们似乎都定义了空值,而且,比较null == undefined的计算结果为true。对于JavaScript,解释器在访问尚未初始化的变量或对象属性时返回undefined。通常,这种危险的操作会生成undefined 的相关错误,从而快速地结束脚本。让咱们详细讨论undefined 及其对代码安全性的影响。ECMAScript规范定义了undefined 值的类型Undefined type是其唯一值为undefined 值的类型。let myVariable;myVariable; // => undefinedmyVariable已声明,但尚未赋值,默认值为undefined。变量未暴露给未初始化状态,并且访问undefined是不可能的。
  • ES2019 中的 JavaScript 新特性
    JavaScript 从成立之初就已经走了很长一段路,提供了许多新的功能,这些功能是专门设计来使该语言更加人性化和提升效率。而 JavaScript 的 Optional chaining 在需要深度访问嵌套对象属性时就特别有用。.()); // undefined目前该特性尚未添加到 JavaScript 规范中,目前还处于草案建议阶段。首先看看常规的 try 和 catch 的代码块:try { const parsedJsonData = JSON.parse;} catch { //obj 变量在使用时没有进行定义 console.log;}而通过错误捕获绑定,我们无需提供未使用的变量,特别是当我们已经为 try 块提供默认处理的情况下:function getName () { let name = "Gbolahan Olagunju"; try { name = obj.details.name } catch {} console.log;}管道操作符这是对 JavaScript 的拟议补充之一,目前处于第1阶段。
  • 说Node.js做后端开发,stream有必要了解下
    linux命令的|就是stream。这时候我们来看一下用stream实现。看了两个例子我想小伙伴们应该知道为什么要使用stream了吧!stream流转过程 再次看这张水桶管道流转图图中可以看出,stream整个流转过程包括source,dest,还有连接二者的管道pipe,分别介绍三者来带领大家搞懂stream流转过程。stream从哪里来-soucrestream的常见来源方式有三种:从控制台输入http请求中的request读取文件这里先说一下从控制台输入这种方式,2和3两种方式stream应用场景章节会有详细的讲解。
  • ES6、ES7、ES8、ES9、ES10新特性一览
    目前JavaScript使用的ECMAScript版本为ECMA-417。关于ECMA的最新资讯可以浏览ECMA news查看。ECMA规范最终由TC39敲定。TC39由包括浏览器厂商在内的各方组成,他们开会推动JavaScript提案沿着一条严格的发展道路前进。ES6新特性ES6的特性比较多,在 ES5 发布近 6 年之后才将其标准化。两个发布版本之间时间跨度很大,所以ES6中的特性比较多。模块的功能主要由 export 和 import 组成。同时还为模块创造了命名空间,防止函数的命名冲突。导出ES6允许在一个模块中使用export来导出多个变量或函数。import defaultMethod, { otherMethod } from 'xxx.js';3.箭头函数这是ES6中最令人激动的特性之一。
  • 【JS 口袋书】第 1 和 2 章:JS简介及基础
    第1章:JS 简介什么是JavaScriptJS 是一种用于 web 的脚本语言。JS 诞生于 1995 年,由 **Brendan Eich **一手创建,用于向web页面添加交互性。咱们今天用于开发 JS 的大多数 Web 工具和库,很多用 JS 写的。在单页面应用中,JS 负责所有的事情,使 UI 流畅,无需任何页面刷新。JS 开发人员知道闭包、this、new、原型系统和更新的特性。JS 一年比一年流行,功能也逐渐完善。前端开发人员应该要理解 JS 的特性,并能够编写惯用的、结构良好的 JS 代码。第1章:JS 基础JS 目前有 7 种基本类型,如下:StringNumberBooleanNullUndefinedObjectSymbol除了 Object 是复杂数据类型外,其它的 6 种是 JS 的基本数据类型。
  • 如何实现Web页面录屏?
    录屏重现错误场景如果你的应用有接入到web apm系统中,那么你可能就知道apm系统能帮你捕获到页面发生的未捕获错误,给出错误栈,帮助你定位到BUG。当然这个说明是比较简略的,鼠标的记录比较简单,我们不展开讲,主要说明一下DOM监控的实现思路。页面首次全量快照首先你可能会想到,要实现页面全量快照,可以直接使用outerHTMLconst content = document.documentElement.outerHTML;这样就简单记录了页面的所有DOM,你只需要首先给DOM增加标记id,然后得到outerHTML,然后去除JS脚本。那么,我们有办法保持页面DOM的原有结构吗?
  • 看家本领来了:全面了解 React Suspense 和 Hooks
    要深入回答这个问题, 就不得不提到一个React 的核心概念:React Fiber.一些必须要先了解的背景React FiberReact Fiber 是在 v16 的时候引入的一个全新架构, 旨在解决异步渲染问题。新的架构使得使得 React 用异步渲染成为可能,但要注意,这个改变只是让异步渲染成为可能。但是React 却并没有在 v16 发布的时候立刻开启,也就是说,React 在 v16 发布之后依然使用的是同步渲染。不过,虽然异步渲染没有立刻采用,Fiber 架构还是打开了通向新世界的大门,React v16 一系列新功能几乎都是基于 Fiber 架构。而且,render 函数 也是属于 第一阶段 render phase 的。不过,很快React觉着
  • 使用 SVG 实现圆环日期选择器
    虽然已经有 Canvas 的答案了,不过当时正好在学习 SVG 就顺手自己实现了一下。我感觉对大家理解 SVG 的贝塞尔曲线会有一定的帮助,所以重新整理了下发出来。另外感兴趣的同学还可以去原问题上看一下,除了标准答案 Canvas 的实现以及我写的 SVG 实现之外,还有使用 DIV+CSS 的实现方案。它与 RGB 不同的地方在于 RGB 采用的是直角坐标系,而 HSL 采用的是圆柱坐标系,在颜色的归类表达上会更直观。由于 SVG 实际上可以看成一个一个的 DOM 标签,所以点击事件处理起来也是非常的得心应手的。最后附上我的最终代码和效果:class SVG {constructor(width
  • 【Nodejs】375- 如何加快 Node.js 应用的启动速度
    我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。目前,集团 Serverless 大潮已至,Node.js serverless-runtime 作为前端新研发模式的基石,也发展的如火如荼。这 100ms 包括了 Node.js 运行时、函数运行时、函数框架启动到能够响应请求的时间。Node.js 有多快在我们印象中 Node.js 是比较快的,敲一段代码,马上就可以执行出结果。看来 Node.js 本身并没有那么快,我们 100ms 的目标看起来很困难啊!
  • 面向前端工程师的Nodejs入门手册(四)
    接下来看看Nodejs能不能操作这个网站的“记忆系统”呢?一起进入Nodejs与数据库的内容学习吧。在Nodejs中,lowdb模块[1]便是被用于文件数据库的封装库,它的规范就是我们熟知的json规范,使用它无需安装其他软件,仅需要我们有nodejs环境即可。但是相比于上面来说,它的自身做了很多限制与规范。这里就以Mongodb来看看Nodejs是如何操作非关系型数据库的。接下来进行连接与操作mongodb数据库,这里选用使用量较高的mongoose模块。接着定义了一个模型Model,Model即可理解为暴露出的一张表的操作对象,如新增查找更新删除等都在Model上,例子中的Model就是操作person表的操作对象,
  • 你们要的C++面试题答案来了--基础篇
    说一下static关键字的作用参考回答:全局静态变量在全局变量前加上关键字static,全局变量就定义成一个全局静态变量.静态存储区,在整个程序运行期间一直存在。函数的定义和声明在默认情况下都是extern的,但静态函数只是在声明他的文件当中可见,不能被其他文件所用。对多个对象来说,静态数据成员只存储一处,供所有对象共用类的静态函数静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因此,对静态成员的引用不需要用对象名。C的强制转换表面上看起来功能强大什么都能转,但是转化不够明确,不能进行错误检查,容易出错。
  • 深入浅出 Babel 上篇:架构和原理 + 实战
    AST 是 Babel 转译的核心数据结构,后续的操作都依赖于 AST。Babel 所有插件都是在这个阶段工作, 比如语法转换、代码压缩。也就是说它们的核心非常小,大部分功能都是通过插件扩展实现的所以简单地了解一下 Babel 的架构和一些基本概念,对后续文章内容的理解, 以及Babel的使用还是有帮助的。
  • 【JS】379- 教你玩转数组 reduce
    Reduce是迄今为止发现的最通用的功能之一Eric Elliott使用 reduce 做加法乘法还可以,可一旦要超出现有基础示例,人们就会觉着有些困难。使用 reduce 做和数字以外的事情,总会觉着有些怪怪的。第一个是,我们更愿意教别人使用 .map() 和 .filter() 却不教 reduce()。每个不一样的初始值,经过 reduce 之后,都会有不同的结果。第二个原因是我们如何去教人们使用 .reduce()。但实际上 reducer 函数中到底发生了什么。Reducer 函数是给 .reduce() 传递的第一个参数 accumulator。它包含上次调用 reducer 函数时返回的所有内容。但是,它掩盖了一个 .reduce() 最有趣的特征。reduce() 不仅仅是对字符串好用。
  • 1.5万字概括ES6全部特性
    最近这次阅读都是逐个逐个字来读,发现很多以前都没有注意到的知识点,为了方便记忆和预览全部ES6特性,所以写下本文。本文整理出来的笔记都是书中的精华内容,囊括了整个ES6体系的所有特性,非常方便大家重新认识全部ES6特性。半小时的阅读就可以对ES6有一个全面的了解,可以认为是一本ES6特性小字典,收藏后可随时查阅。ECMAscript 2015是在2015年6月发布ES6的第一个版本。以此类推,ECMAscript 2016是ES6的第二个版本、 ECMAscript 2017是ES6的第三个版本。ES6既是一个历史名词也是一个泛指,含义是5.1版本以后的JavaScript下一代标准,目前涵盖了ES2015、ES2016、ES2017、ES2018、ES2019。
  • 3分钟掌握ES6、7 编程风格
    块级作用域let 取代 varES6提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。变量应该只在其声明的代码块内有效,var命令做不到这一点。所以,建议不再使用var命令,而是使用let命令取代全局常量和线程安全在let和const之间,建议优先使用const,尤其是在全局环境,不应该设置变量,只应设置常量。const优于let有几个原因。
  • JavaScript函数式编程究竟是什么?
    在这篇文章中,将通大量代码示例来详细介绍函数式编程和一些相关重要概念。纯函数当我们想要理解函数式编程时,需要知道的第一个基本概念是纯函数,但纯函数又是什么鬼?不是纯函数会这样做,接收radius作为参数,然后计算radius * radius * PI:letPI=3.14;constcalculateArea==>radius*radius*PI; calculateArea; // returns 314.0为什么这是一个不纯函数?修复它:letPI=3.14;constcalculateArea==>radius*radius*pi; calculateArea; // returns 314.0现在把PI的值作为参数传递给函数,这样就没有外部对象引入。letcounter=1; function increaseCounter { counter = value + 1;} increaseCounter; console.log; // 2该非纯函数接收该值并重新分配counter,使其值增加1。函数式编程不鼓励可变性。纯函数是稳定的、一致的和可预测的。
  • 【JS】380- JavaScript 正则新特性
    概括如果你曾用 JavaScript 进行过复杂的文本处理操作,那么你将会喜欢 ES2018 中引入的新特性。本文将详细介绍第9版标准如何提高 JavaScript 的文本处理能力。自1999年推出 ECMAScript 标准第三版以来,正则表达式就成为 JavaScript 语言的一部分。ECMAScript 2018是该标准的第九版,引入四个新特性进一步提高了 JavaScript 的文本处理能力:后行断言具名组匹配s 修饰符:dotAll 模式Unicode 属性类以下小节详细介绍这些新特性后行断言断言能够根据之前或之后的内容匹配一系列字符,丢弃可能不需要的匹配。在 ES2018 之前,JavaScript 中只支持先行断言。最后,如果在正则表达式中使用了具名组匹配,则保存在 groups 属性。
活跃用户
《科技日报》是富有鲜明科技特色的综合性日报,是面向国内外公开发行的中央主流新闻媒体,是党和国家在科技领域的重要舆论前沿,是广大读者依靠科技创造财富、提升文明、刷新生活的服务平台,是中国科技界面向社会、连接世界的明亮窗口。
分享java开发中常用的技术,分享软件开发中各种新技术的应用方法。每天推送java技术相关或者互联网相关文章。关注“java那些事”,让自己做一个潮流的java技术人!《java程序员由笨鸟到菜鸟》系列文章火热更新中。
有完整的Java初级,高级对应的学习路线和资料,会不定期组织学习交流活动,让大家的学习更有气氛!
阿里巴巴官方技术号,关于阿里的技术创新均呈现于此。
Linux,C语言,C++,数据结构与算法,计算机基础,数据库,工具,资源【原创】分享,力求【知其然,更知其所以然】。高质量学习资源免费获取。
良许,自学转行IT,现为世界500强Linux开发工程师。公众号分享大量Linux干货,以及git、数据库、树莓派等方面技术知识。期待您的关注,一起学习进步!(后台回复 1024 免费赠送资源)
为程序员(码农)提供最新最全的编程技术文章,分享程序员的有趣故事。提供全面的前端、php、java、android、ios、.net学习教程
软硬兼施,娱乐共享
最懂你的程序员在这里,我们不仅聊技术,我们还聊情感,聊人生。
以 Android 为根基,紧跟 Google 脚步,拥抱国内 Android 技术发展趋势。
最有价值的架构师圈子和社区,我们分享各种互联网架构技术干货,探讨架构设计和实战经验,不定期送书、分享学习资料与面试题等。关注学习,早日成为架构师。
分享黑客技术和网络安全知识,让程序员了解黑客世界,学习黑客技术;普及上网和网络安全知识;帮助黑客、安全从业者、安全爱好者学习与成长。
一站式Java全栈技术学习平台!
《前端剑解》 —— 是由海之林技术团队维护的前端公众号,关注前端技能的发展;【前端面试每日3+1】 —— 365天,每天早上5点发布面试题(html, css, js, 软技能),以面试题来驱动学习,提倡每日学习与思考,每天进步一点!
程序猿DD的技术学习与思考
数字公民的糖
开发者社区:打造全网最全的开发者聚集地,分享全栈开发的技术文章、工具资源、精选课程、视频资源、学习资料和人生职场成长感悟。
从TOPYS APP每日打捞精彩文章,以全球最新鲜最棒的创意商业资讯,扩充你的灵感库。
人工智能已经在迅速的改变我们的世界,当它与脑科学结合,这种改变将最终达到人本身。混沌巡洋舰站立在这两个未来的塑造者之间, 讨论这场正在发生的变革对每个行业和个体的影响。我已委托“维权骑士”为我的文章进行维权行动。
计算机网络学习从入门到精通