201706-20 JavaScript 新手的踩坑日记 引语在1995年5月,Eich大神在10天内就写出了第一个脚本语言的版本,JavaScript的第一个代号是Mocha,MarcAndreesen起的这个名字。由于商标问题以及很多产品已经使用了Live的前缀,网景市场部将它改名为LiveScript。在1995年11月底,Navigator2.0B3发行,其中包含了该语言的原型,这个版本相比之前没有什么大的变化。在1995年12月初,Java语言发展壮大,Sun把Java的商标授权给了网景。这个语言被再次改名,变成了最... 继续阅读 >
201706-17 JavaScript 最新特性实现的三大黑科技 依次执行多项异步任务有时候,我们希望批量执行一组异步任务,但是不是并行,而是依次执行,这组任务是动态的,在一个数组里,当然我们可以用for循环然后一个一个await执行,但是还有另外一种方式:JSBinonjsbin.com在上面的例子里,我们定义了一个taskReducer:asyncfunctiontaskReducer(promise,action){letres=awaitpromise;returnaction(res);}这个reducer的两个参数是promis... 继续阅读 >
201706-14 JavaScript六种继承方式 继承是面向对象编程中又一非常重要的概念,JavaScript支持实现继承,不支持接口继承,实现继承主要依靠原型链来实现的原型链首先得要明白什么是原型链,在一篇文章看懂proto和prototype的关系及区别中讲得非常详细原型链继承基本思想就是让一个原型对象指向另一个类型的实例functionSuperType(){this.property=true}SuperType.prototype.getSuperValue=function(){returnthis.property}functio... 继续阅读 >
201706-08 近几年工作经验中总结的JavaScript使用技巧 本文作者分享了作者近几年工作中的经验总结的js使用技巧,1.ajax接收JSON,需要用eval转化为字符串,2.ajax发出两个请求,使用同步解决问题,数组合并等1、如果ajax返回单一的json格式,接收方需要这样再格式化一下赋值:varstr=eval("("+msg+")");开发引用:///<referencepath="http://x.autoimg.cn/as/static/js/jquery-1.7.2.min.js"/>2、如果ajax同发出两个以上的请求时,返回的状态会串,... 继续阅读 >
201705-17 21 个编程的热门/冷门趋势 来源: 维基百科HOA420程序员们喜好嘲讽那潮流像阵风一样吹过的时尚界。裙子长短颜色款式总是来回在变,领带越来越窄,接着越来越薄。而在技术的世界里,相较于一时的风尚,严谨、科学、数理化以及精确才是王道。不过这也并不是说编程就是一个没有趋势走向的行业。不同之处就在于编程的趋势是由更高的效率,越来越多的定制化以及更佳的易用性这些因素来驱动的。新一代的技术都是上代技术沉淀升级的结果。这是... 继续阅读 >
201705-12 Javascript的继承与多态 本文先对es6发布之前javascript各种继承实现方式进行深入的分析比较,然后再介绍es6中对类继承的支持以及优缺点讨论。最后介绍了javascript面向对象编程中很少被涉及的“多态”,并提供了“运算符重载”的思路。本文假设你已经知道或了解了js中原型、原型链的概念。es6之前,javascript本质上不能算是一门面向对象的编程语言,因为它对于封装、继承、多态这些面向对象语言的特点并没有在语言层面上提供原生的支持。但是,它... 继续阅读 >
201705-04 10个基于JavaScript的机器学习案例 在过去的几年里,机器学习的开发库增长很快,可用性也变得越来越可靠,而且没有减慢的趋势。一直以来Python作为机器学习的主力语言,现在神经网络可以应用任何语言了,包括JavaScript!web生态系统虽然最近一直在取得进步,但是在机器学习领域JavaScropt和Node.js相对Python和Java来说还是稍弱,但是现在它们已经有足够的能力来处理机器学习方法的问题了。Web语言也有一个优势,就是你所有的JavaScript机器学习工程只需要浏览器支... 继续阅读 >
201704-27 JavaScript 巧学巧用 前言由于工作和生活上的一些变化,最近写文章的频率有点下降了,实在不好意思,不过相信不久就会慢慢恢复过来,感谢大家一直以来的关注和支持。本文主要给大家分享一下在编写JavaScript代码的时候存在的一些方法和技巧,虽然有时候条条大路都通向罗马,但是也许总会有那么一条最短的路径可走。希望通过以下几点JavaScript技巧让大家的代码“化繁为简,化简为精”。巧学巧用1.newSet()可能有人知道ES6中提... 继续阅读 >
201704-27 JavaScript异步编程 还记得一年前写过一篇关于JavaScript异步编程简述的文章,主要介绍了JavaScript的单线程特性与异步编程实现方式:回调函数,发布订阅模式,Promise对象三种,关于Promise介绍的比较简略,决定再详细总结一下,既是对上一篇文章的补充,也能以更深刻的方式分享自己关于异步编程的理解。前言如果你有志于成为一个优秀的前端工程师,或是想要深入学习JavaScript,异步编程是必不可少的一个知识点,这也是区分初级,... 继续阅读 >
201704-21 JavaScript常用代码总结 分享了一些常用JavaScript代码,有:1.手机类型判断、2.字符串长度、3.获取url中的参数、4.js绑定事件、5.当前浏览器JS的版本、6.全选/全不选、7.移除事件、8.回车提交、9.ajax提交等。经常使用的JS方法,今天记下,以便以后查询手机类型判断varBrowserInfo={userAgent:navigator.userAgent.toLowerCase()isAndroid:Boolean(navigator.userAgent.match(/android/ig)),isIphone:Boolean(naviga... 继续阅读 >
201704-14 深入理解JavaScript执行上下文、函数堆栈、提升的概念 首先明确几个概念:EC:函数执行环境(或执行上下文),ExecutionContextECS:执行环境栈,ExecutionContextStackVO:变量对象,VariableObjectAO:活动对象,ActiveObjectscopechain:作用域链想当初自己看到这几个概念的时候是一(m)脸(d)懵(z)逼(z),但是不得不说这几个概念对以后深入学习JS有很大的帮助。来不及解释了,赶紧上车~EC(执行上下文)每次当... 继续阅读 >
201704-13 80%应聘者都不及格的JS面试题 写在前面,笔者在做面试官这2年多的时间内,面试了数百个前端工程师,惊讶的发现,超过80%的候选人对下面这道题的回答情况连及格都达不到。这究竟是怎样神奇的一道面试题?他考察了候选人的哪些能力?对正在读本文的你有什么启示?且听我慢慢道来不起眼的开始招聘前端工程师,尤其是中高级前端工程师,扎实的JS基础绝对是必要条件,基础不扎实的工程师在面对前端开发中的各种问题时大概率会束手无策。在考察候选... 继续阅读 >
201704-13 JavaScript中数组对象详解 Array对象即数组对象用于在单个变量中存储多个值,JS的数组是弱类型的,所以允许数组中含有不同类型的元素,数组元素甚至可以是对象或者其他数组。创建数组的语法1、Array构造器1、varlist=newArray();2、varlist=newArray(size);3、varlist=newArray(element0,element1,...elementn);2、字面量的方式varArray[element0,element1,...elementn];举例子varlist=newArray(1,true,nu... 继续阅读 >
201704-13 JavaScript引用是如何工作的 JavaScript中没有指针,并且JavaScript中的引用与我们通常看到的大多数其他流行编程语言的工作方式不同。在JavaScript中,不可能有一个变量到另一个变量的引用。而且,只有复合值(例如对象或数组)可以通过引用来赋值。整片文章中将使用下列属于:标量–单个值或数据单元(如整数、布尔值、字符串)复合--由多个值组成(如数组、对象、集合)原始-直接的价值,而不是对包含值的东西的引用。Jav... 继续阅读 >
201704-01 一道有价值的JS继承面试题 题目原题目来源于一个网友的问答varA=function(){this.name='apple';}A.prototype.getName=function(){returnthis.name;}//补充代码varB=A.extend({initialize:function(){this.superclass.initialize.call(this);this.total=3;},say:function(){return'我有'+this.total+'个'+this.getName()}});varb=newB();console.log(b.say());/... 继续阅读 >
201703-28 我眼中的 JavaScript 函数式编程 JavaScript函数式编程是一个存在了很久的话题,但似乎从2016年开始,它变得越来越火热。这可能是因为ES6语法对于函数式编程更为友好,也可能是因为诸如RxJS(ReactiveX)等函数式框架的流行。看过许多关于函数式编程的讲解,但是其中大部分是停留在理论层面,还有一些是仅针对Haskell等纯函数式编程语言的。而本文旨在聊一聊我眼中的函数式编程在JavaScript中的具体实践,之所以是“我眼中的”即... 继续阅读 >