话题
文章列表
何方舟 javascript
TOP JAVASCRIPT FRAMEWORKS & TOPICS TO LEARN IN 2017 作者: Eric Elliott 原文: https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.2i6o5ik9g [https://medium.com/javascript-scene/top-javascript-frameworks-topics-to-learn-in-2017-700a397b711#.2i6o5ik9g] 译:Adamhe JavaScript的普及导致了一个非常活跃的技术,框架和类库的生态系统。 随着这充满令人惊叹的多样性和能量的生态圈的到来,许多人的烦恼也变得越来越多 什么样的技术才是你应该关注的呢? 在哪里投入你的时间才能获得最大的利益? 哪些技术栈是是招聘公司现在所需要的? 哪些技能又具有最大的增长潜力? 现在知道的最重要的技术是什么? ...显示全部
2 年前发表 3987次浏览 0条评论 0次收藏
caorich javascript
Typescript为javascript加入了众多类型声明语法,灵活使用可使代码变得健壮,不严谨的类型声明会带来后期的维护麻烦。本篇假设读者已经学会ts的基础类型声明语法,包括 type 、 interface 、 extends 和泛型,在此基础上,聊一聊一些更加复杂的类型声明场景以及解决办法。 场景1:子集类型 假设你有一个 Person 类,声明如下: class Person{ name: string; score: number; advance: (score: number) => void; } Person 类有两个实例属性和一个原型方法。现在,我们需要一个 PersonBasicInfo 类型,它只包含 Person 类的基本信息,不能包含方法,算是 Person 类型的子集,这在一些有权限限制的接口传值时会使用到。我们第一时间想到的是写一个这样的类型: type PersonBaseInfo = { name: string; score: number; } ...显示全部
5 天前发表 33次浏览 0条评论 0次收藏
kurtshen javascript
ECMASCRIPT装饰器的简单指南(翻译) 简要介绍JavaScript中的“装饰器”的提案的一些基础示例以及ECMAScript相关的内容 为什么用ECMAScript装饰器代替标题中的JavaScript装饰器? 因为ECMAScript是用于编写脚本语言(如JavaScript)的标准,所以它不强制JavaScript支持所有规范,但JavaScript引擎(由不同浏览器使用)可能支持或不支持由ECMAScript引入的功能,或者支持一些不同的行为。 将ECMAScript视为您所说的某种语言,例如英语。 那么JavaScript就像英式英语一样。 方言本身就是一种语言,但是它是基于它所源自的语言的原则而应运而生。 因此,ECMAScript是烹饪/书写JavaScript的“烹饪书”,由主厨/开发人员决定遵循或不遵守所有配料/规则。 通常而言,JavaScript采用者遵循用语言编写的所有规范(不然开发人员将会被逼疯),并在新版本的JavaScript引擎出现后,并且直到确保一切正常,才会发布它。 ...显示全部
17 天前发表 69次浏览 0条评论 0次收藏
王少飞 javascript
关于Badjs2.0的一些特性以及腾讯云镜像安装的可以参考文章 badjs2.0 [https://ivweb.io/topic/59cf917f12203967d35ca7be] 下面主要介绍如何通过docker部署badjs2 1 首先要有一台服务器,可以安装DOCKER-CE。 CENTOS 7 老版本不支持安装docker DEBIAN 64位系统 Buster 10 (Docker CE 17.11 Edge only) Stretch 9 (stable) / Raspbian Stretch Jessie 8 (LTS) / Raspbian Jessie Wheezy 7.7 (LTS) UBUNTU 64位系统 Artful 17.10 (Docker CE 17.11 Edge and higher only) Xenial 16.04 (LTS) Trusty 14.04 (LTS) FEDORA 26,27 2 安装DOCKER可以参考官方文档 ...显示全部
3 个月前发表 203次浏览 0条评论 0次收藏
高磊 javascript
导语 为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口。乍一看文档,感觉文档上讲的非常有道理,但是实现起来又真的是摸不着头脑,不知道如何管理和维护登录态。本文就来手把手的教会大家在业务里如何接入和维护微信登录态 接入流程 这里官方文档上的流程图已经足够清晰,我们直接就该图展开详述和补充。 img [https://mp.weixin.qq.com/debug/wxadoc/dev/image/api-login.jpg?t=201842] 首先大家看到这张图,肯定会注意到小程序进行通信交互的不止是小程序前端和我们自己的服务端,微信第三方服务端也参与其中,那么微信服务端在其中扮演着怎样的角色呢?我们一起来串一遍登录鉴权的流程就明白了。 1. 调用wx.login生成code wx.login()这个API的作用就是为当前用户生成一个临时的登录凭证,这个临时登录凭证的有效期只有五分钟。我们拿到这个登录凭证后就可以进行下一步操作:获取 openid 和 session_key wx.login({ ...显示全部
3 个月前发表 260次浏览 0条评论 0次收藏
程柳锋 javascript
导语:TypeScript(以下简称TS) 是由微软开发的编程语言,是JavaScript的超集,于2013年10月发布第一个正式版0.9。最先代码托管在Codeplex,2014年7月移到了Github。它的代码风格和C#很像,这是因为TS是由C#首席架构师设计并主导开发的。 开发环境 编辑器首选MS自家开发的VS Code (推荐)。当然,Webstorm在2016年2月推出的版本内置了TS编译器,atom 需要安装 atom-typescript包,sublime需要安装Typescript-sublime-plugin。 TS程序以.ts扩展名结尾。运行TS程序很简单,只需要安装编译器TS compile即可,需要通过npm 的方式安装它。 npm install typescript-g 安装完后,在全局会有tsc命令,需要通过它编译TS程序 tsc hello.ts 类型系统 ...显示全部
4 个月前发表 274次浏览 0条评论 0次收藏
qcyhust javascript
WEBGL纹理颜色原理 导语 WebGL绘制图像时,往着色器中传入颜色信息就可以给图形绘制出相应的颜色,现在已经知道顶点着色器和片段着色器一起决定着向颜色缓冲区写入颜色信息并最终呈现出来,那么这个过程是什么样,如果图形的颜色需要用现有图片来渲染那么又该如何操作? [http://7tszky.com1.z0.glb.clouddn.com/FiH73ZJTXQb10Z3sZY2feqOwICVe] 颜色缓冲区 在绘制开始前,经常见到调用函数清空画布的代码 gl.clear(gl.COLOR_BUFFER_BIT) ,清空画布的绘图区实际上就是用之前定义好的背景颜色将颜色缓冲的的颜色清除。颜色缓冲区中存放着需要显示到画布上的像素的颜色数据,它属于帧缓存的一部分,与深度缓存、模板缓存等一起决定着最终画布上图像的显示信息。 ...显示全部
8 个月前发表 529次浏览 0条评论 0次收藏
qcyhust javascript
WEBGL-从2D开始 导语 在网页上绘制3D图形已经不再是什么新鲜的事情,时不时都能遇到一个炫酷的3D模型让人感叹未来的无限可能,在某些使用场景下,用3D呈现内容会更能抓住用户的注意力,新技术如AR、3D全景的不断成熟也在加速构建3D世界的脚步。 技术上我们已经有足够多的手段去实现一个三维世界,比如css3可以实现3D变换、动画,html5 canvas 2D画布可以模拟3D物体甚至实现3D的效果。而本文要讨论的webgl相对来说会更加底层,它建立在OpenGL ES 2.0( 嵌入式OpenGL,一个适用于移动设备的3D图形标准 )之上,对曾经从事过OpenGL 3D图形开发的人员来说非常容易入门。 WebGL本质来讲仍然是html5画布的功能,浏览器提供一系列的编程接口来在html和JavaScript的环境中绘制3D图形。它利用图形硬件( GPU ...显示全部
10 个月前发表 406次浏览 0条评论 0次收藏
qcyhust javascript
YEOMAN-GENERATOR中的RUN LOOP实现 导语 在上一篇yeoman( 利用yeoman构建项目generator [https://ivweb.io/topic/59999645e85cf527bb60f0d5] )的构建项目介绍文中提到过一个yeoman genenrator的run loop。当时提到“每一个添加进去的方法都会在generator调用的时候被调用,而且通常来讲,这些方法是按照顺序调用的”以及简单介绍了yeoman的方法执行顺序,这篇文章将仔细分析run loop的具体实现。 RUN LOOP 所谓的run loop是IOS开发中的一个概念,具体来说是一个与线程相对应的对象,用它来实现线程自动释放池、延迟回调、触摸事件、屏幕刷新等功能。线程一般在执行完任务后就直接退出,run loop这个循环会让线程处于接受消息->等待->处理的循环中,直到接受到退出的信号才会结束循环。 yeoman中的run ...显示全部
1 年前发表 372次浏览 0条评论 0次收藏
biliou javascript
PIPELINE-OPERATOR 此前,如果我们需要实现函数1的返回值域给函数2调用 最简单的方式是 A(B(C())) 面向对象的话可以 let obj = { value: void0, A() { this.value = 1; returnthis; }, B() { this.value += 2; returnthis; }, C() { this.value *=3; returnthis; } } obj .A() .B() .C() 如果在node端我们还可以使用.pipe .pipe(A()) .pipe(B()) .pipe(C()) 基本使用 而在Es2017中,TC39也为我们提供了管道运算符,它的基本用法是,将上一个函数执行,且将返回值作为入参,传递给下个函数的形参。并执行下一个函数,直到全部函数执行完成,返回最后一个函数返回的结果。 例如如下三个函数 ...显示全部
1 年前发表 607次浏览 0条评论 0次收藏
helinjiang javascript
我们即将讨论的是如何在前端项目中引入自动化测试。虽然文章聚焦的是前端项目,但实际上讨论的内容也适合 Node 端应用。 [http://7tszky.com1.z0.glb.clouddn.com/Fq-4isCzf_KhoK0MnIPwb9eD8wOq] 这是本系列文章的第一章,主要内容是对前端自动化测试有一个初步的了解。适合入门学习。 1. 引入自动化测试的必要性 好处很多,包括减少错误、提高效率等,尤其是前端项目越来越庞大且多人维护时,前端自动化测试就会显得尤其重要。 代价也有,毕竟需要额外的学习成本。但在你的项目中加入测试,也许没你想象的那么困难。 2. BDD VS TDD 说起测试,需要先说一下主流的测试类型,包括 BDD 和 TDD,有点枯燥,但有必要有个简单的了解,因为会影响选择如何测试的策略。 * TDD(Testing Driven Developement,测试驱动开发),强调的是一种开发方式,以测试来驱动整个项目,即先根据接口完成测试编写,然后在完成功能时要不断通过测试,最终目的是通过所有测试。 * BDD(Bebavior Driven ...显示全部
1 年前发表 1637次浏览 0条评论 1次收藏
王少飞 javascript
在做业务时我们用react+redux框架,其中redux的reducers是用的纯函数。这里什么是纯函数?为什么要用纯函数?纯函数的好处是什么?接下来的我们一起研究下。 redux强调reducers一定要是纯函数[http://7tszky.com1.z0.glb.clouddn.com/Fv8Fmer6v0TwE13LwPzb2gHgV26z] 什么是纯函数 满足以上两条的函数成为纯函数: * 在相同的输入值时,需产生相同的输出。函数的输出和输入值以外的其他隐藏信息或状态无关,也和由I/O设备产生的外部输出无关 * 不能有语义上可观察的函数副作用,诸如“触发事件”,使输出设备输出,或更改输出值以外物件的内容等 -------------------------------------------------------------------------------- [http://7tszky.com1.z0.glb.clouddn.com/FiGG7SaMUz2C7UWCiZM_Kimf9IIw] 图一 ...显示全部
1 年前发表 1050次浏览 0条评论 0次收藏