Web前端-JS语言核心
文章平均质量分 63
zccst
这个作者很懒,什么都没留下…
展开
-
js判断复合数据类型的两种方式(typeof不奏效了)
作者:zccsttypeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法先上结论:1,(arr && typeof(arr) === "object" && arr.constructor === Array)2,Object.prototype.toString.call(arr);[code="js"]Object.pr...原创 2014-11-07 17:47:46 · 309 阅读 · 0 评论 -
js-arguments的认识
作者:zccst2014-6-10 自己构造一个Array like类数组的构成要点:1,元素是数组式索引2,有length属性[code="js"]var test3 = { 0 : 10, 1 : function(){ return this[0]; }, length:2}console.log(Array.proto...原创 2013-08-27 13:41:40 · 104 阅读 · 0 评论 -
[夏天Object]运行时程序执行的上下文堆栈(一)
作者:zccst时间:2014-07-01这已经是第二次系统学习面向对象,时至今日,我仍对Javascript的面向对象编程常读常新,所以还得继续学习。原以为读完《Javascript高级程序设计》,就彻底理解Javascript了,就到顶了,谁知实际上是才刚刚开始,后面的路还很漫长。我知道我还需要读更多的Javascript书籍或技术,才能真正更深入理解Javascrip...原创 2014-07-01 22:26:23 · 114 阅读 · 0 评论 -
[Object]继承(经典版)(五)封装
作者:zccst封装已经上升到写插件的水平了,与多重继承属于同一个高度,来共同完成实际工作中的挑战。1,封装[code="js"]var Person = (function(){ //定义私有方法,相当于private方法,只能在内部访问 function hello(){ alert('hello world!'); }...原创 2014-06-18 22:21:08 · 128 阅读 · 0 评论 -
[Object]继承(经典版)(四)多重继承和组合继承
作者:zccst[b]一、多重继承[/b]不得不说,这又是异常精彩的章节,是原型链的升华。[code="js"]//父类1function Parent1(name,age){ this.name = name; this.age = age; this.height=180;}Parent1.prototype.say = fun...原创 2014-06-18 22:16:02 · 235 阅读 · 0 评论 -
[Object]继承(经典版)(三)继承理论总结
作者:zccst更新:在JavaScript模式中,作者在原继承的几种模式基础上,还总结了一些模式:1,原型继承 Child.prototype = new Parent();对于原型继承,在ECMA5中定义了Object.create();方法。实现了无new继承。var child = Object.create(parent, {//parent是父类对象 ...原创 2014-06-18 22:15:12 · 120 阅读 · 0 评论 -
[Object]继承(经典版)(二)原型链(原型继承)
作者:zccst毫不夸张的说,这节是继承的核心所在。是重中之重。一、原型链——将父类的实例赋给子类的prototype[code="js"]function Person(name,age){ this.name = name; this.age = age; this.arr = [11,22,33]; this.alertName = "al...原创 2014-06-18 22:05:51 · 92 阅读 · 0 评论 -
[Object]继承(经典版)(一)对象冒充和Call
作者:zccst先臆想一下这种方法[code="js"]var a = function(){ alert(1);}console.log(a);a.m1 = function(){ alert(2);}console.log(typeof a);console.log(typeof a.m1);a.m1();//结论:给函数绑定一个属性...原创 2014-06-18 21:51:51 · 218 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(0)属性和方法
zccst转载+原创[code="js"]function Person(){ var private_name = "小明"; //私有属性 var private_age = 10; //私有属性 this.privilege_name = "小红"; //特权属性 this.privilege_age = 9; ...原创 2014-06-16 23:04:04 · 88 阅读 · 0 评论 -
JS-call和apply(一)
作者:zccst2014-6-10昨天对Array.prototype.slice.call(arguments);还是不太理解,不知道为什么slice调用时,可以将arguments切为数组。今天理解call(this, args);中的this是一个对象。而不是一个函数function(){}。[code="js"]var test1 = { age : 10,...原创 2013-08-21 22:36:49 · 118 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(0)原型方法能调用实例方法?
作者:zccst按照我的理解,实例方法在对象中,原型方法在原型对象中。对象与原型对象之间是通过[[prototype]]指针建立起关系的。问题是:怎么可以逆过来,原型对象方法里访问实例方法?经过下面的例子可以看出:[color=red]是this在起作用[/color]。分析:对象是 new Person(构造函数)得出的。所以this作用域中,即包含实例属性,也包含实...原创 2014-06-09 16:41:55 · 81 阅读 · 0 评论 -
js-this作用域
作者:zccst2014-12具体日子记不清了,反正是那段时间彻底弄清楚了this作用域指向。前面的文字都没错,常见的就是那四种。还需要继续探讨的是:1,当做函数调用,无论在什么时候都是window比如:[code="js"]i = 0;var o = { i: 1, fn1: function(){ this.i = 10...原创 2013-08-27 18:15:39 · 122 阅读 · 0 评论 -
《JavaScript模式》读书笔记
作者:zccst[b]第四章:函数[/b]函数的两个特征:是对象;提供作用域。函数是对象表现如下:[list][*]可以运行时动态创建,还可以在程序执行过程中创建[*]函数可以分配给变量,可以将它们的引用复制到其他变量,可以被扩展,删除[*]可以作为参数传给其他函数,并且还可以有其他函数返回[*]函数可以有自己的属性和方法[/list]下面介绍八...原创 2015-01-23 11:59:56 · 124 阅读 · 0 评论 -
js运算符优先级
作者:zccstjs运算符优先级也是一个巨大的坑。有时候你会被绕进去,例如:var tpl = len > max && exceedTpl || defaultTpl;按照我的理解,当len小于max时,第一个为假,后面又是&&,所以直接跳过执行下一行。但实际是tpl等于defaultTpl。测试用例:3 > 5 && 'a' || 'b'; // '...原创 2015-01-26 10:39:54 · 171 阅读 · 0 评论 -
js-闭包(权威指南版)
作者:zccst[code="js"]//1,闭包是词法作用域(作用域在定义时决定,不是在调用时决定)var scope = "global scope";function checkscope(){ var scope = "local scope"; function f(){ return scope; } ret...原创 2014-10-27 18:42:58 · 169 阅读 · 0 评论 -
js数据类型转换
作者:zccst2015-3-27类型转换的坑,还在继续踩。[b]如何将字符串"false"转为布尔型false?[/b]1,使用Boolean("false"); ? 错,结果是true。2,使用?valueOf 如何使用?localStorage['aa'];//"false"valueOf(localStorage['aa']) === fals...原创 2014-10-22 10:53:55 · 150 阅读 · 0 评论 -
html5的onhashchange和history历史管理
作者:zccst现在的开发,越来越倾向于页面内跳转,这种情况下需要更新自己的知识,来实现页面内跳转。history就是解决这个问题的。HTML5有两种解决办法:1,onhashchange用到了window.loaction.hash对象(存,取)2,history(1) pushstate 三个参数:数据,标题(为空),url(可选)。(2) ...原创 2014-09-20 08:18:39 · 868 阅读 · 0 评论 -
Javascript语言精粹-毒瘤和糟粕
作者:zccstJavascript是一门语言,用久了肯定能够发现其中的好与不好的地方。不过大多数普通人没那么细心,所以也就忽略了,很难说出一二三来。但对于极客版的牛人就不同了,他们理解的远比普通人透彻。[size=large][b]二、糟粕(轻微)[/b][/size][size=large][b]一、毒瘤(严重)[/b][/size][b]1,全...原创 2014-09-16 18:37:47 · 135 阅读 · 0 评论 -
[正则]改变URL中的参数值
作者:zccst如果一个URL是:http://www.example.com/index.html?id=100&name=xx&age=20希望将name=meinv怎么办?[code="js"]function getQueryString(name) { var reg = new RegExp("(\\?|^|&|\#)" + name + "=([^&|^#...原创 2015-05-20 20:37:49 · 334 阅读 · 0 评论 -
理解JavaScript的单线程运行机制及setTimeout(fn,0)
zccst整理阮老师的链接:[url]http://javascript.ruanyifeng.com/bom/timer.html[/url][b]一、为什么JavaScript是单线程?[/b]JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事。那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊。JavaScript的单线程,...原创 2015-03-30 17:56:27 · 186 阅读 · 0 评论 -
延迟自定义函数
作者:zccst如果函数内又定义了一个跟自己同名的函数,执行结果是什么?[code="js"]function scareMe(){ alert("Boo!"); function scareMe(){ alert("double boo!"); } scareMe();}scareMe();[/code]结论:把函数名当变量理解,还遵循作...原创 2015-03-26 14:02:34 · 378 阅读 · 0 评论 -
js语句和表达式
作者:zccst一直觉得语句和表达式很简单,不需要专门留意,但是最近还是发现一些坑,发现也不是那么简单。自不必说 var a = "" || 100;之类的还有跟常识判断不符的:1,比如在if判断中的几类空[code="js"]//空数组if([]){ //结果是true,执行alert(1)。解决办法,使用[].length就可以 ale...原创 2015-03-11 11:21:50 · 224 阅读 · 0 评论 -
再次学习try catch finally
作者:zccst[b]一、基本介绍[/b]JavaScript的错误1、使用Mozilla浏览器的用户可以直接在Tools下的Javascript Console进行查看浏览器找到的错误.2、自己使用例外处理来捕获JavaScript的异常。如下是Javascript的例外处理的一个实例。[code="js"]var array = null;try {...原创 2015-03-10 11:26:42 · 181 阅读 · 0 评论 -
[201502]封装
作者:zccst我理解的封装是建立在熟悉面向对象和继承的基础之上。[code="js"]function defineLogin(lib, undefined){ //配置。默认配置,模板 config = {}; function Login(options){ //初始化配置项 } Login.prototyp...原创 2015-02-07 11:59:54 · 90 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(五)继承
作者:zccst一、原型链继承[code="js"]function SuperType(){ this.property = true;}SuperType.prototype.getSuperValue = function(){ return this.property;}function SubType(){ this.subproper...原创 2013-12-31 14:26:50 · 198 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(四)寄生和稳妥模式
[size=large][b]五、原型的动态性[/b][/size]其他OO语言的人可能看到独立的构造函数和原型时,很可能会感到非常困惑。动态原型模式正是致力于解决这个问题的一个方案,他把所有信息都封装在了构造函数中,而通过在构造函数中初始化原型,又保持了同时使用构造函数和原型的优点。换句话说,可以通过检查某个应该存在的方法是否有效,来决定是否需要初始化原型。来看一个例子:[code="j...原创 2013-12-31 14:11:25 · 87 阅读 · 0 评论 -
js-基础知识-Array
作者:zccst2014-9-28splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。arrayObject.splice(index,howmany,item1,.....,itemX)index是索引howmany是要删除的个数item1....itemX是要添加的个数注释:该方法会改变原始数组。splice() 方法与 slice() 方法...原创 2012-11-01 19:10:38 · 84 阅读 · 0 评论 -
匿名函数与闭包(珠峰版)
作者:zccst1,递归2,闭包[code="js"]function createComparisonFunction(propertyName){ return function(object1, object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName...原创 2012-02-28 23:46:52 · 131 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(一)工厂和构造函数模式
作者:zccst思路:工厂模式-->构造函数-->原型模式[b]一、工厂方法[/b][code="js"]createPerson(name ,sex, age){ var o = new object(); o.name = name; o.sex = sex; o.age = age; o.sayName = fun...原创 2012-02-27 00:24:41 · 116 阅读 · 0 评论 -
js基础知识点
[b]一、js判断undefined类型[/b]方法:if (typeof(reValue) == "undefined") { alert("undefined");} typeof 返回的是字符串,有六种可能:"number"、"string"、"boolean"、"object"、"function"、"undefine原创 2011-11-17 11:12:44 · 77 阅读 · 0 评论 -
JS对象与关联数组初步
作者:zccstjs对象与数组的区别:数组,是下标从0到n。对象,是key-value。[code="js"]//如果如下形式:(在$.POST提交时会出错)var a = [];a['prop1'] = v1;a['prop12'] = v2;//应该改写为:var a = {};a['prop1'] = v1;a['prop12'] ...原创 2011-11-14 20:39:28 · 245 阅读 · 0 评论 -
js验证
作者:zccst3,验证是整数一般情况下,在验证前都要先去除空格、回车换行js去除空格、回车换行代码var emails = $("#emails").val();emails = emails.replace(/\ +/g,"");emails = emails.replace(/[ ]/g,"");emails = emails.replace(...原创 2011-10-26 11:55:24 · 92 阅读 · 0 评论 -
JavaScript调试技巧之:快速定位
作者:zccst2014-11-20再次思考一个调试的流程:但实际上找到错误的方式和路径是并行的,一条路不同,换条路走,比如a, 查看报错信息,然后用console.log()和console.dir()。b. 设置断点调试。比如,在当前行或前后设置断点,逐行运行,查看数据是否符合预期。有时代码甚至没走你的逻辑。通过这种方式也能发现一些问题。...原创 2011-10-12 13:38:16 · 320 阅读 · 0 评论 -
js-Date和时间格式化
作者:zccst日期函数同PHP,shell,perl一样。用法可直接参数手册。关键是积累吧。timeago需要的时间格式[code="js"] //时间格式化yyyy-MM-dd hh:mm:ss Date.prototype.format = function(format) { var o = { "M+" : ...原创 2011-06-23 15:25:55 · 172 阅读 · 0 评论 -
js之接收JSON
作者:zccstjs 中读取JSON的方法探讨js读取JSON的方法我接触到的有两种:方法一:函数构造定义法返回var strJSON = "{name:'json name'}";//得到的JSONvar obj = new Function("return" + strJSON)();//转换后的JSON对象alert(obj.name);//json name...原创 2011-06-23 15:19:59 · 492 阅读 · 0 评论 -
js代码中实现页面跳转的几种方式
js代码中实现页面跳转的几种方式注:jquery的$.get(),$.post(),$.ajax()都不会使页面发送跳转,因为其本质都是ajax请求。第一种: window.location.href="login.jsp?backurl="+window.location.href; 页面跳转最常用的是使用win...原创 2011-09-09 11:59:14 · 377 阅读 · 0 评论 -
[Object]面向对象编程(ITCAST版)
作者:zccst一、[color=red]公有、静态、私有和特殊[/color] 属性/方法1,在js对象中添加公有成员和公有方法一种是使用this另一种是使用prototype2,在js对象中添加静态成员和静态方法使用[code="js"]obj.name = "";obj.Display = function(){}[/code]3,...原创 2012-11-25 23:32:11 · 144 阅读 · 0 评论 -
[Object]面向对象编程(妙味课堂版)
zccst笔记一、面向对象初步工厂方法[code="js"]function createPerson(name,sex){ //1 var p = new Object; //2 p.name = name; p.sex = sex; p.showName = function(){alert(this.name);} p.showSe...原创 2012-11-26 22:49:05 · 154 阅读 · 0 评论 -
js-闭包(妙版)
zccst整理总结:1,闭包是什么闭包2,闭包好处:(1)希望一个变量长期驻扎在内存中。(2)避免全局变量的污染。(3)私有成员的存在3,怎么用模块化代码例子在循环中直接找到对应元素的索引例子4,可能存在的问题内存泄露。外部变量与内部变量互相引用。导致内存越来越大。解决办法:1,及时释放dom结点对象。...原创 2012-11-27 22:43:39 · 121 阅读 · 0 评论 -
[Object]面向对象编程(高程版)(三)组合使用构造函数和原型模式
[size=large][b]四、组合使用构造函数和原型模式[/b][/size]创建自定义类型的最常见方式,是组合使用构造函数模式与原型模式。构造函数用于定义实例属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同时又共享这对方法的引用,最大限度地节省了内存。另外,[color=red]这种混成模式还支持向构造函数传递参数[/color];可谓是几两种...原创 2013-12-30 19:10:09 · 91 阅读 · 0 评论