摘要:
函数声明和函数表达式虽然都是在声明一个函数,但是二者有区别,解析器对二者的解析并非是一视同仁的。解析器会率先解析读取函数声明,并使其可以在执行任何代码前可用(可以访问);至于函数表达式,则必须等到解析器解析执行到它所在的行,才会被真正解释执行,才可被使用。如下代码所示:<script type="text/javascript"> alert(add(2,3)); function add(a,b){ return a+b; }</script>该段代码可以正常执行,因为add(a,b)是一个函数声明,解析器可以在任何地方解析执行这个函数。而下面的代 阅读全文
摘要:
ECMAScript通过RegExp类型支持正则表达式。可以用下面类似于perl的语法创建一个正则表达式。var expression = /pattern flags;其中模式部分可以是任何一个简单或复杂的正则表达式,每个正则表达式都包含有一个或多个标志(flags),用以表明正则表达式的行为。正则表达式的匹配模式支持下列3个标志:g—全局(global)模式,即模式将应用于所有的字符串;i—表示不区分大小写(case-insenitive)模式,即在确定匹配项时忽略模式与字符串的大小写;m—多行(multiline)模式,在一行文本到达末尾时再继续查找下一行中是否存在匹配项。由上面的介绍可 阅读全文
摘要:
栈方法 ECMAScript中数组提供了一种让数组的行为类似于其他数据结构的方法。栈是一种LIFO(后进先出)的数据结构,也就是最后插入的数据最先被移除。栈中的插入(叫推入)和移除(叫弹出)只发生在一个位置,就是栈的顶部。ECMAScript为数组专门提供了push()和pop()方法,以便实现类似栈的行为。 push()方法可以接收任意的参数,把它们逐个插入到数组的末尾,并返回修改后数组的长度。而pop()方法则从最后一项开始移,除减少数组的length值,然后返回被移除的项。如下代码实例:<script type="text/javascript"> var 阅读全文
摘要:
Array类型ECMAScript中,Array应该是仅次于Object的了。js中的Array类型和其他语言的Array的不同是js中的数组的每一项可以保存任何类型的数据,而且数组的大小是可以动态调整的,可以随着数据的增加自动增长以容纳新增数据。ECMAScript有两种创建数组的方式。第一种是使用构造函数的方式,如下代码实例: var arr = new Array();像这种方式创建的数组,如果预先知道数组要保存的项目数量,也可以给构造函数传递参数,指定相应的项目数量,这样每一项的初始值都是undefined。如下代码实例: var arr = new Array(20);同... 阅读全文
摘要:
在前面的几篇博客中学习到了ECMAScript-262的几种基本数据类型,接下来要学习的就是复杂的数据类型Object、Array、Date、RegExp、Function、基本包装类型和内置对象7种类型,复杂数据类型又称为引用类型。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。在其他如Java、C#等面向对象的语言中它被称为类(class)。但因为ECMAScript不具备传统的面向对象语言所支持的类和接口等基本结构,因此,在ECMAScript中将其称为类不是很合适。Object类型在ECMAScript中,Object是其他一切类型的基类,好比Java.. 阅读全文
摘要:
接着前面的章节继续学习。String类型String类型是由0或多个16位Unicode字符组成的字符序列,即字符串。字符串可以由双引号或单引号表示,但是一定要成对出现,即以双引号开始的字符串要以双引号结束,以单引号开始的字符串要以单引号结束这个字符串。这个应该很好理解,不写例子了。1.字符字面量String包含一组特殊的字符字面量,也叫转义序列,其他的编程语言叫转义字符,用于表示非打印字符,或者具有特殊用途的字符。具体如下表:字面量含义\n换行\t制表\b空格\r回车\f进纸\\斜杠\'单引号\"双引号\xnn以16进制代码nn表示一个字符(n为0—F),如\x41表示“A 阅读全文
摘要:
由于环境关系,今天下定决心,要在半年之内,让自己的技术水平有一个很大的提高,而不能仅仅限于在自己的工作范围之内,但是我做的工作,绝不是为了某些人而做,是为了给自己争口气,即所谓人活一张脸,树活一张皮!废话少说,进入正题,接着昨天的题目,继续js的数据类型。Boolean类型 Boolean类型是js中使用的最多的一种数据类型,该类型只有两个值:true和false。这两个数值和数字值不是一回事,因此true不一定等于1,false也不一定等于0。如下实例是为变量赋Boolean类型值的例子: var flag = true; var lost = false; 关于Boolea... 阅读全文
摘要:
早就打算写这篇文章了,但时至今日才决定动笔。如果你投了简历,那么应该会在面试你的人名单里找到我的名字。你现在就有点紧张了,(好啦,别不好意 思)面试总会让人感觉有点不舒服。作为面试官,我其实并不算难对付,但如果你想在我们谈话之后让我放你过关,你确实得做一些必要的准备。回答问题。我问你一个问题,你必须要回答它。我遇到应聘者在回答我问题时顾左右而言他的情况太多了。我知道你 会有些紧张,说几句不着边际的话可能有助于缓解,但请你不要喋喋不休,要赶快回到正题上来。我不想知道你的宠物猫最近又出了什么新状况,我只想听到你的回 答。假如你没有听明白我问的是什么,可以要求我再解释一下,重复几遍问题或者换一种问. 阅读全文
摘要:
昨天,我负责了Yahoo!公司组织的一次面试活动,感触颇深的是其中的应聘者提问环节。我得说自己对应聘者们提出的大多数问题都相当失望。我希望 听到一些对在Yahoo!工作充满激情的问题。在昨天的应聘者中,只有一个人的问题是我认为最好的,那个人问我:“你觉得怎么才能成为优秀的前端工程 师?”我觉得很有必要把这个问题从面试房间里拿出来讨论一下。 首先,前端工程师必须得掌握HTML、CSS和JavaScript。只懂其中一个或两个还不行,你必须对这三门语言都很熟悉。也不是说必须对这三门语言都非常精通,但你至少要能够运用它们完成大多数任务,而无需频繁地寻求别人的帮助。 优秀的前端工程师应该具备快速学习. 阅读全文
摘要:
面试前端工程师对我来说是一件非常有意思的事,因为面试过程很大程度上也是自我提升的过程。无论大公司还是小公司,之所以在如何招聘到真正有能力的 前端工程师方面会遇到同样的问题,就是因为负责招聘的那些人不知道自己公司需要什么样的人,结果问问题时也问不到点子上。经过这几年在行业里的摸索,我总 结出了自己的一套很有效的面试前端工程的方法。有的应聘者说我不好对付,但留给他们这样的印象也并非我所愿。我觉得之所以他们说我不好对付,主要是因为我问他们问题时问得太细了。以前我曾专门写过一些东西,告诉应聘者怎么才能通过我的面试以及怎样才能成为优秀的前端工程师应该具备什么样的素质,而我的面试可以说完全是按照那两篇文章 阅读全文