随笔分类 -  JavaScript Core

摘要:数据类型 JavaScript 是 弱类型 语言,但并不是没有类型,JavaScript可以识别下面 7 种不同类型的值: 基本数据类型 1. Boolean 2. Number 3. String 4. null 5. undefined 6. Symbol Object 1. Array 2. 阅读全文
posted @ 2016-06-07 07:53 谦行 阅读(7301) 评论(4) 推荐(4) 编辑
摘要:# 理解对象对象这个词如雷贯耳,同样出名的一句话:XXX语言中一切皆为对象!对象究竟是什么?什么叫面向对象编程?>对象(object),台湾译作物件,是面向对象(Object Oriented)中的术语,既表示客观世界问题空间(Namespace)中的某个具体的事物,又表示软件系统解空间中的基本元素... 阅读全文
posted @ 2015-04-02 08:50 谦行 阅读(30962) 评论(31) 推荐(55) 编辑
摘要:看完了javaScript[数据类型](http://www.cnblogs.com/dolphinX/p/3521118.html)和[表达式与运算符](http://www.cnblogs.com/dolphinX/p/3524977.html)相关知识后以为可以对JavaScript笔试题牛刀... 阅读全文
posted @ 2014-01-24 16:18 谦行 阅读(10269) 评论(31) 推荐(25) 编辑
摘要:上篇博客[JavaScript面试时候的坑洼沟洄——数据类型](http://www.cnblogs.com/dolphinX/p/3521118.html)总结了一下JavaScript数据类型几转换的相关知识,很多朋友可能和我一样,买了书后对数据类型啊、运算符啊、语句啊都是扫两眼或直接略过的,自己为搞定原型、闭包、作用域链就可以秒杀JavaScript笔试题,结果一次次死在毫不起眼的基础知识上,看似平淡无奇实则暗流涌动,一不小心就会栽倒。好了不扯淡了,回正题###神马是表达式表达式是由数字、运算符、数字分组符号(如括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。~~约束 阅读全文
posted @ 2014-01-20 09:27 谦行 阅读(9222) 评论(11) 推荐(17) 编辑
摘要:前些日子写了篇关于最近找工作的一些感受的博客 [找工作的一些感悟——前端小菜的成长](http://www.cnblogs.com/dolphinX/p/3510346.html),没想到得到了很多园友的共鸣,得到了很多鼓励,也有园友希望我分享一些笔试、面试的经验。我觉得分享一些笔试题没太多价值,对... 阅读全文
posted @ 2014-01-17 20:31 谦行 阅读(7148) 评论(14) 推荐(25) 编辑
摘要:上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实例的几个属性RegExp实例对象有五个属性global:是否全局搜索,默认是falseignoreCase:是否大小写敏感,默认是falsemultiline:多行搜索,默认值是falselastIndex:是当前表达式模式首次匹配内容中最后一个字符的下一个位置,每次正则表达式成功匹配时,lastIndex属性值都会随之改变。source:正则表达式的文本字符串除了将正则表达式编译为内部格式从而使 阅读全文
posted @ 2013-12-24 08:24 谦行 阅读(12823) 评论(9) 推荐(9) 编辑
摘要:定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%>','g'); 2. 字面量 var reg=/<%[^%>]%>/g; g: global,全文搜索,默认搜索到第一个结果接 阅读全文
posted @ 2013-12-23 09:59 谦行 阅读(64946) 评论(38) 推荐(75) 编辑
摘要:在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型元素,JavaScript在同一个数组中可以存放多种类型的元素,而且是长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改。创建数组在JavaScript多种方式创建数组构造函数1.无参构造函数,创建一空数组var a1=new Array();2.一个数字参数构造函数,指定数组长度(由于数组长度可以动态调整,作用并不大),创建指定长度的数组var a2=ne 阅读全文
posted @ 2013-10-10 19:02 谦行 阅读(72872) 评论(11) 推荐(22) 编辑
摘要:在公司经常会听到大牛们讨论时说道内存泄露神马的,每每都惊羡不已,最近精力主要用在了Web 开发上,读了一下《JavaScript高级程序设计》(书名很唬人,实际作者写的特别好,由浅入深)了解了一下JavaScript垃圾回收机制,对内存泄露有了一定的认识。和C#、Java一样JavaScript有自动垃圾回收机制,也就是说执行环境会负责管理代码执行过程中使用的内存,在开发过程中就无需考虑内存分配及无用内存的回收问题了。JavaScript垃圾回收的机制很简单:找出不再使用的变量,然后释放掉其占用的内存,但是这个过程不是时时的,因为其开销比较大,所以垃圾回收器会按照固定的时间间隔周期性的执行。变 阅读全文
posted @ 2013-10-07 16:21 谦行 阅读(35859) 评论(22) 推荐(24) 编辑
摘要:初学面向对象的时候总会背面向对象三个特征——封装、继承和多态,生怕考试或面试时自己答不上来。习惯于从C++、Java、C#的角度看待继承,工作后用到JavaScript觉得这种东西不会有继承,因为JavaScript没有强类型,怎么继承。弱类型实现继承的理论可行性“当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。”基础弱类型语言多了就会渐渐听说鸭子类型(duck typing),在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定的,在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。通俗来说一个对 阅读全文
posted @ 2013-09-07 23:08 谦行 阅读(3165) 评论(4) 推荐(3) 编辑
摘要:JavaScript 有Date、Array、String等这样的内置对象,功能强大使用简单,人见人爱,但在处理一些复杂的逻辑的时候,内置对象就很无力了,往往需要开发者自定义对象。对象是什么从JavaScript定义上讲对象是无序属性的集合,其属性可以包含基本值、对象或函数。也就是说对象是一组没有特定顺序的属性,每个属性会映射到一个值上,是一组键值对,值可以是数据或对象。最简单的对象JavaScript的一对花括号{}就可以定义一个对象,这样的写法实际上和调用Object的构造函数一样var obj={};var obj2=new Object();这样构建出来的对象仅仅包含一个指向Objec 阅读全文
posted @ 2013-08-28 22:57 谦行 阅读(16455) 评论(3) 推荐(8) 编辑
摘要:用过JavaScript的同学们肯定都对prototype如雷贯耳,但是这究竟是个什么东西却让初学者莫衷一是,只知道函数都会有一个prototype属性,可以为其添加函数供实例访问,其它的就不清楚了,最近看了一些 JavaScript高级程序设计,终于揭开了其神秘面纱。每个函数都有一个prototype属性,这个属性是指向一个对象的引用,这个对象称为原型对象,原型对象包含函数实例共享的方法和属性,也就是说将函数用作构造函数调用(使用new操作符调用)的时候,新创建的对象会从原型对象上继承属性和方法。私有变量、函数在具体说prototype前说几个相关的东东,可以更好的理解prototype的设 阅读全文
posted @ 2013-08-27 22:42 谦行 阅读(53690) 评论(42) 推荐(77) 编辑
摘要:之前写过一篇JavaScript 闭包究竟是什么的文章理解闭包,觉得写得很清晰,可以简单理解闭包产生原因,但看评论都在说了解了作用域链和活动对象才能真正理解闭包,起初不以为然,后来在跟公司同事交流的时候发现作用域和执行环境确实很重要,又很基础,对理解JavaScript闭包很有帮助,所以在写一篇对作用域和执行环境的理解。作用域作用域就是变量和函数的可访问范围,控制着变量和函数的可见性与生命周期,在JavaScript中变量的作用域有全局作用域和局部作用域。单纯的JavaScript作用域还是很好理解的,在一些类C编程语言中花括号内的每一段代码都有各自的作用域,而且变量在声明它们的代码段外是不可 阅读全文
posted @ 2013-08-25 15:53 谦行 阅读(25432) 评论(17) 推荐(18) 编辑
摘要:JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法,然而var s='this is a string';alert(s.length);alert(s.indexOf('is'));结果很简单,但是仔细想想还真奇怪,string不是值类型吗!怎么又有属性又有方法的!内置对象JavaScript有一系列内置对象来创建语言的基本功能,具体看一下BooleanBoolean 对象表示两个值:"true&quo 阅读全文
posted @ 2013-08-25 09:11 谦行 阅读(5895) 评论(0) 推荐(5) 编辑
摘要:使用过Java、C#的同学对命名空间非常的熟悉,在复杂的系统中会有N多的函数、对象,语言提供的、架构预定义的,这么多的函数和对象,由于编程规范要求起有实际意义的名字,难免会重名发生错误调用,而有了命名空间烦恼就没有了,不但可以分类组织函数与对象,还可以形成隔离,解决重名问题。 使用JavaScript就没有这么舒服了,Javascript只有函数作用域,什么块儿啊、神马文件啊统统都认为是一个命名... 阅读全文
posted @ 2013-08-20 12:01 谦行 阅读(19380) 评论(10) 推荐(19) 编辑
摘要:属性构造到了window对象在JavaScript中构造函数其实是一个使用new操作符调用的函数,在使用呢我调用时, 构造函数内部用到的this对象会指向新创建的对象function Person(name,age,job){ this.name=name; this.age=age; this.job=job; } var person=new Person('Byron',24,'Software Engineer');在这个例子中构... 阅读全文
posted @ 2013-08-12 10:10 谦行 阅读(2182) 评论(0) 推荐(2) 编辑
摘要:一个简单的函数绑定在JavaScript与DOM交互中经常需要使用函数绑定,定义一个函数然后将其绑定到特定DOM元素或集合的某个事件触发程序上,绑定函数经常和回调函数及事件处理程序一起使用,以便把函数作为变量传递的同时保留代码执行环境。 上面的例子创建了一个handler对象,handler.handlerFun()方法被分配为DOM按钮的click事件处理程序。设计意图是这样的:当点击按钮的时候触发该方法,弹出对话框显示handler定义的message,然而点击后对话框内容却是undefined。熟悉闭包的同学可以轻松看出来这个问题在于没有保存hand... 阅读全文
posted @ 2013-08-11 21:29 谦行 阅读(7195) 评论(3) 推荐(4) 编辑
摘要:最近在项目中经常会使用Ajax技术,用法上倒是熟练了,但是只知其然,不知其所以然,抽时间读了读JavaScript高级程序设计中关于Ajax的介绍有了些初步的理解,在此总结一下。什么是AjaxAjax是Asynchronous JavaScript and XML的缩写,这一技术能够向服务器请求额外的数据而无需卸载整个页面,会带来良好的用户体验。传统的HTTP请求流程大概是这样的,浏览器向服务器发送请求-〉服务器根据浏览器传来数据生成response-〉服务器把response返回给浏览器-〉浏览器刷新整个页面显示最新数据,这个过程是同步的,顺序执行。AJAX 在浏览器与 Web 服务器之间使 阅读全文
posted @ 2013-08-06 22:47 谦行 阅读(9356) 评论(9) 推荐(11) 编辑
摘要:接触JavaScript两年多遇到过各种错误,其中有一些让人防不胜防,原来对JavaScript的误会如此之深,仅以此文总结一下常见的各种想当然的误区String replacestring的replace方法我们经常用,替换string中的某些字符,语法像这样子string.replace(subStr/reg,replaceStr/function)第一个参数是要查找的字符串或者一个正则表达式,第二个参数是想替换成的字符串或一个方法,我们可以这么使用"I'm Byron".replace("B","b") // I' 阅读全文
posted @ 2013-08-02 18:42 谦行 阅读(6845) 评论(13) 推荐(15) 编辑
摘要:定义setTimeout()和setInterval()经常被用来处理延时和定时任务。setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则可以在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。从定义上我们可以看到两个函数十分类似,只不过前者执行一次,而后者可以执行多次,两个函数的参数也相同,第一个参数是要执行的code或句柄,第二个是延迟的毫秒数。很简单的定义,使用起来也很简单,但有时候我们的代码并不是按照我们的想象精确时间被调用的,很让人困惑简单示例看个简单的例子,简单页面在加载完两秒后,写下Delayed al 阅读全文
posted @ 2013-04-05 16:59 谦行 阅读(28299) 评论(10) 推荐(13) 编辑