这两个参数都是必须的,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。对于replacement是函数的情况,给我们提供了...
用过Prototype的人都知道,里面有个类叫做Template,用法示例如下: 代码如下: var str = #{what} may have gone, but there is a time of #{how}; var object = { what : Swallows, how : return } var template_1 = new Template(str); var result = template_1.evaluate(object); console.log(result:,result); //输出:Swallows may have gone, but there is a time of return 这么挺方便的,所以下面就简单的分析一下实现原...
引子: 今天看到别人的一个题目: 代码如下: function fn(x){ x = 10; arguments[0] = 20; console.log(x,arguments[0]) } fn() 感觉自己对这也是一知半解,自己也可以试一下,于是就特地分析一下。 本想从语言的角度来分析,无奈功力不够,只能粗浅的尝试一下,于是称之管中窥豹,还望大牛指正。 这是昨天写的,今天吃饭的时候又想了一下,想来想去感觉有些问题还是说得不靠谱,于是又试着修改了一下。 每一本js入门书籍都会提到...
格式 camelize | capitalize | underscore | dasherize | inspect 变形 toArray | succ | times这里面一个有用的方法是inspect,按照参考手册的说明,他的作用是“返回该字符串针对调试的字符串表现形式(即用单引号或双引号包括起来,并使用 '\' 对特殊字符进行转义)”,在Object的toJSON里面也涉及到这个方法。 既然涉及到需要转义的字符,我们自然要一份转义字符信息,下面直接给出: 代码如下: String.spe...
添加到String.prototype中的方法比较多,不过归结起来,大致分为下面几类:分类 方法名 原始能力增强 strip | include | startsWith | endsWith | empty | blank格式 camelize | capitalize | underscore | dasherize | inspect 变形 toArray | succ | times替换 interpolate | sub | scan | truncate | gsubHTML处理 stripTags | escapeHTML | unescapeHTML参数序列化 toQueryParamsJSON...
在javascript中,根本找不到Enumerable的影子,因为这一块是Prototype作者从Ruby中借鉴过来的。并且Enumerable在实际中根本没有直接应用的机会,都是混入到其他的对象中,可以说是其他对象的一个“父类”(不过只是调用了Object的extend方法,进行了方法的直接拷贝而已)。 我并不熟悉Ruby,不过看Enumerable中的一些方法,倒是跟Python中的有几分相似。 Enumerable其中一个最重要的方法是each,each这个方法应该都比较熟悉...
Number部分方法比较少,一共有8个: toColorPart: 将 Number 对象转换为具有两位数字的十六进制形式 succ: 返回当前 Number 对象的下一个值,即当前值加一 times: 采用 Ruby 的风格来封装一个标准的 [0...n] 循环 toPaddedString:将当前 Number 对象转换为字符串,如果转换后的字符串长度小于 length 指定的值,则用 0 在左边补足其余的位数 abs: 返回当前 Number 对象的绝对值。 round: 返回当前 Number 对象四舍五入后的整数值。...
替换 interpolate | sub | scan | truncate | gsubinterpolate : 将字符串看作一个模板,并使用 object 的属性填充它。 sub : 将字符串中前指定个个与 pattern 指定的模式匹配的子串用 replacement 替换 scan : 遍历字符串中与参数 pattern 指定的模式匹配的所有子串。返回原始字符串本身。 truncate : 将字符串截短为指定的长度(包含后缀部分), 并添加一个后缀。 gsub :将字符串中所有与 pattern 指定的模式匹配的值全...
前面each方法中掉了一个方面没有说,就是源码中的$break和$continue。这两个变量是预定义的,其作用相当于普通循环里面的break和continue语句的作用。出于效率的考虑,在某些操作中并不需要完全遍历一个集合(不局限于一个数组),所以break和continue还是很必要的。 对于一个循环来说,对比下面几种退出循环的方式: 代码如下: var array_1 = [1,2,3]; var array_2 = [a,b,c]; (function(){ for(var i = 0, len = array_1.length...
beforeunload 指在页面卸载前提供的最后一次JS执行的机会。如下 代码如下: window.onbeforeunload = function() { return 您正在编辑的博客尚未保存,确定要离开此页吗?; }; 可以使用返回值文字来提示用户。但只有Firefox中却不显示该文字。 当刷新页面时,各浏览器表现如下 IE:Chrome:Firefox12: Mozilla官方说Firefox4之前的版本可以通过事件对象的returnValue修改该值,如下 代码如下: window.onbeforeunload = function(...
动画原理 所谓的动画,就是通过一些列的运动形成的动的画面。在网页中,我们可以通过不断的改变元素的css值,来达到动的效果。 用到的公式 总距离S = 总时间T * 速度V 即: V = S/T 当前距离s = S/T * 已耗时t 即: s = S * (t/T) 即:当前距离 = 总距离 * (已耗时/总时间) 即:动画元素开始值 + (动画元素结束值 - 动画元素开始值) * (当前时间-开始时间) / (动画需要时间) + 值的格式 有了上面这些公式,我们就能利用javascript的s...
I'm sorry!我用jquery的大概有一年了,只知道$(selector),其内部选择器的流程走向完全不清晰!于是看了jquery的源码,jquery用的选择器的引擎是sizzle,是jquery的作者另一开源项目,在github上面有,号称最快的dom选择器!不到2000行代码。上面说了不是很精彩的开场白,我么来个 for example: $('.test') 在jquery的流程是怎么走的呢? 1.首先会做如下的判断 代码如下: /** *关于 querySelectorAll函数 *返回当前文档中匹配一个...
前言 基本上,所有JS数据类型都拥有这两个方法,null除外。它们俩解决javascript值运算与显示的问题,重写会加大它们调用的优化。 测试分析 先看一例: 代码如下:var aaa = { i: 10, valueOf: function() { return this.i+30; }, toString: function() { return this.valueOf()+10; } } alert(aaa > 20); // true alert(+aaa); // 40 alert(aaa); // 50 之所以有这样的结果,因为它们偷偷地调用valueOf或toString方法。但如何区...
1.获取select 选中的 text: $("#cusChildTypeId").find("option:selected").text(); $("#cusChildTypeId option:selected").text()2.获取select选中的 value: $("#ddlRegType ").val();3.获取select选中的索引: $("#ddlRegType ").get(0).selectedIndex;4.得到select项的个数 $("#cusChildTypeId").get(0).options.length5.设置select 选中的索引: $("#cusChildTypeId").get(0).selectedIndex=index;//index为索引值...
$("#myELement") 选择id值等于myElement的元素,id值不能重复在文档中只能有一个id值是myElement所以得到的是唯一的元素 $("div") 选择所有的div标签元素,返回div元素数组 $(".myClass") 选择使用myClass类的css的所有元素 $("*") 选择文档中的所有的元素,可以运用多种的选择方式进行联合选择:例如$("#myELement,div,.myclass") 层叠选择器: $("form input") 选择所有的form元素中的input元素 $("#main > *") 选择id值为ma...