201610-18 深入理解Javascript--作用域和赋值操作 作用域作为一个最基础的功能存在于各种编程语言中,它使得我们的编程更加灵活有趣。其基础功能就是存储变量中的值,然后可以对值进行访问和修改。可能我们都知道作用域的一些概念,以及其一些扩展的一些内容闭包等,但是相对于这些可能我们去了解这些变量到底是存到了哪里,而我们的程序是如何访问到他们的会更加有趣。vara=1;首先我们要了解到在我们进行声明变量并进行赋值的时候到底谁参与了我们的整个流程。1,引擎:它... 继续阅读 >
201610-17 守护 Javascript 中的函数参数 作为开发者,我们花费许多时间来调试,尤其是在发现问题来源方面。开发工具指导我们追踪调用栈,但是追踪过程仍然相当耗时,尤其在遇到级联异步调用的时候。这一问题在很早以前就被发现了。假设我们有一个从不同文档结构中搜索包含指定字符串的元素的函数。我们使用以下看起来合法的调用:grep("substring",tree);但是我们并没有得到期望的结果。按照以往的经验,我们会花费一些时间来检查给定的树形文档结构,时间有可能会... 继续阅读 >
201610-14 深入浅出JavaScript之闭包(Closure) 闭包(closure)是掌握Javascript从人门到深入一个非常重要的门槛,它是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面写下我的学习笔记~闭包-无处不在 在前端编程中,使用闭包是非常常见的,我们经常有意无意,直接或间接用到了闭包。闭包可以使传递数据更加灵活(比如处理一些点击事件)!function(){varlocalData="localDatahere";document.addEventListener('c... 继续阅读 >
201610-14 JavaScript-总结常用代码书写规范 javascript代码规范代码规范我们应该遵循古老的原则:“能做并不意味着应该做”。全局命名空间污染总是将代码包裹在一个立即的函数表达式里面,形成一个独立的模块。不推荐varx=10,y=100;console.log(window.x+''+window.y);推荐;(function(window){'usestrict';varx=10,y=100;console.log(window.x+''+window.y);}(window));立即执行函... 继续阅读 >
201610-11 JavaScript中this绑定详解 this可以说是javascript中最耐人寻味的一个特性,就像高中英语里各种时态,比如被动时态,过去时,现在时,过去进行时一样,无论弄错过多少次,下一次依然可能弄错。本文启发于《你不知道的JavaScript上卷》,对javasript中的this进行一个总结。学习this的第一步就是明白this既不是指向函数自身也不指向函数的作用域。this实际上是在函数被调用时发生的绑定,它指向什么地方完全取决于函数在哪里被调用。默... 继续阅读 >
201610-11 JavaScript原型详解 1,前言下面是2008年Github创建以来,各种编程语言的排名情况其中JavaScript自2015年之后就盘踞第一名,成为github上被使用最多的语言,早期,JS的使用还主要集中于浏览器中,但是随着node.js进军服务器开发和ReactNative逐渐向移动端渗透,一个属于JS的全栈时代就要来临了。而且JS界还流传一句名言:“所有能用JS开发的应用程序,最终都会用JS来开发”。我就问你怕不怕?好了,说了这么多,我并不是想说JS为世界... 继续阅读 >
201610-08 在 2016 年学 JavaScript 是一种什么样的体验? 嘿,我最近接到一个Web项目,不过老实说,我这两年没怎么接触Web编程,听说Web技术已经发生了一些变化。听说你是这里对新技术最了解的Web开发工程师?准确地说,我是一名「前端工程师」。不过你算是找对人了。我对今年的技术别提多熟了,前端可视化、音乐播放器、能踢足球的无人机,你尽管问吧。我刚去JS大会和React大会逛了一圈,没有什么新技术是我不知道的。厉害。是这样的,我要开发一个网页,用来展示用户... 继续阅读 >
201609-10 JavaScript 中的面向对象编程 介绍JavaScript是一个强大的面向对象编程语言,但是,并不像传统的编程语言,它采用一个以原型为基础的OOP模型,致使它的语法让大多数开发人员看不懂。另外,JavaScript也把函数作为首要的对象,这可能会给不够熟悉这门语言的开发人员造成更大的困惑。那就是我们决定放在前面作为一个简短前言进行介绍的原因,并且在JavaScript里也可以用作面向对象编程的一个参考。这个文档没有提供一个面向对象编程的规则预览... 继续阅读 >
201608-25 为什么我要说 JavaScript 对象字面量很酷? 在 ECMAScript2015 之前,JavaScript里的对象字面量(也叫对象初始化器)功能很弱。它只能定义两种属性:普通键/值对 {name1:value}Getters {getname(){..}} 以及 setters {setname(val){..}},用来设置和获取需要计算的值。令人心痛地,对象字面量的所有用法只用一个简单的例子就能囊括:TryinJSBinvarmyObject={myString:'value1',getmyNumber(){ret... 继续阅读 >
201608-22 JavaScript里的循环方法:forEach,for-in,for-of JavaScript诞生已经有20多年了,我们一直使用的用来循环一个数组的方法是这样的:for(varindex=0;index<myArray.length;index++){console.log(myArray[index]);}自从JavaScript5起,我们开始可以使用内置的forEach方法:myArray.forEach(function(value){console.log(value);});写法简单了许多,但也有短处:你不能中断循环(使用break语句或使用return语句。JavaScript里还有一种循环方法:for–in。for... 继续阅读 >
201608-17 javascript运算符_流程控制语句_字符串对象 一、运算符1、比较运算符(返回布尔值)>,>=,<,<=,==,!=,===,!==1234567891011 vara=1; varb=2; if(a=b){ alert("a和b相等"); }elseif(a>b){ ... 继续阅读 >
201608-09 JavaScript 异步进化史 前言JS中最基础的异步调用方式是callback,它将回调函数callback传给异步API,由浏览器或Node在异步完成后,通知JS引擎调用callback。对于简单的异步操作,用callback实现,是够用的。但随着负责交互页面和Node出现,callback方案的弊端开始浮现出来。Promise规范孕育而生,并被纳入ES6的规范中。后来ES7又在Promise的基础上将async函数纳入标准。此为JavaScript异步进化史。同步与异步通常,代码... 继续阅读 >
201608-09 面试开发常用的 JavaScript 知识点总结 No1.语法和类型1.声明定义变量类型:var,定义变量;let,定义块域(scope)本地变量;const,定义只读常量。变量格式:以字母、下划线“_”或者$符号开头,大小写敏感。变量赋值:声明但未赋值的变量在使用时值为undefined,未声明的变量直接使用会抛异常。未赋值变量作计算:结果为NaN。例如:varx,y=1;console.log(x+y);//结果为NaN,因为x没有赋值。2.作用域变量作用域... 继续阅读 >
201607-07 不同优秀程度JavaScript开发者的差别 “优秀绝非偶然.它总是由强烈的意图、真诚的付出以及聪明的行动带来的。优秀代表着明智的选择——选择,而不是机会,它会决定着你的命运。“–亚里士多德我们所有人都想成为自己所在领域的佼佼者,但是很少有人付出时间和努力去实现自己所想。成为优秀的人很难,任何职业都是这样。评估一个JavaScript开发者的优秀程度是非常难的事情。是什么成就一个优秀的JavaScript开发者呢?... 继续阅读 >
201606-27 JavaScript 创建对象: 方法一览与最佳实践 在JavaScript中“创建对象”是一个复杂的话题。这门语言提供了很多种创建对象的方式,不论新手还是老手都可能对此感到无所适从,不知道应该选择哪一种。不过,尽管创建对象的方法很多,看上去语法差异也很大,但实际上它们的相似性可能比你所以为的要多。本文将带领你踏上一段梳理对象创建方法的旅程,为你揭示不同方法之间的依赖与递进关系。对象字面量我们的第一站毫无疑问就是创建对象最简单的方法,对... 继续阅读 >
201602-17 JavaScript 创建对象模式与最佳实践 在JavaScript中“创建对象”是一个复杂的话题。这门语言提供了很多种创建对象的方式,不论新手还是老手都可能对此感到无所适从,不知道应该选择哪一种。不过,尽管创建对象的方法很多,看上去语法差异也很大,但实际上它们的相似性可能比你所以为的要多。本文将带领你踏上一段梳理对象创建方法的旅程,为你揭示不同方法之间的依赖与递进关系。对象字面量我们的第一站毫无疑问就是创建对象最简单的方法,对象字面量。JavaScript... 继续阅读 >