原文:Enforcing toString() 译文:javascript 中强制执行 toString() 译者:singleseeker Javascript通常会根据方法或运算符的需要而自动把值转成所需的类型,这可能导致各种错误。 Brian McKenna (@puffnfresh) suggests 提供了下列测试代码: 代码如下:Object.prototype.valueOf = function () { throw new Error(Use an explicit toString); }; [\s\S ]*\n 这些代码会产生什么效果? 你现在再也不能用加号运算符去把一个对像转...
开发中我们经常需要将一个String和多个String值进行比较。直觉反应是使用||符号连接多个===完成,比如: 代码如下:if (string === banana || string === pineapple) { fruitColor = yellow; } 这样能够很好的完成需求,但总觉得有点笨,并且对扩展不友好,当我们的水果种类变多时: 代码如下:if (string === banana || string === pineapple || string === mongo || string === lemon) { fruitColor = yellow; } 上面的代码看起...
使用方法: 代码如下:str.substring(start, end) "String Literal".substring(start, end) 其中“start”是指明要截取字符串的起始位置,该索引从0 开始起算。“end”是指明要截取字符串的结束位置,该索引从0 开始起算。 JavaScript中substring()函数方法将返回一个包含从start 到最后(不包含end )的子字符串的字符串。 JavaScript中substring()函数方法使用start 和end 两者中的较小值作为子字符串的起始点。例如, strvar.s...
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法:string.replace(subStr/reg,replaceStr/function) 第一个参数可以是字符串的子字符串,也可以是一个正则表达式,第二个参数可以是一个字符串或者一个处理方法,下面我们分别看看 代码如下:document.write(1234.replace(1, X));我们可以得到结果:X234,很正常,但是 代码如下:document.write(1214.replace(1, X));我们预想结果应...
前言 基本上,所有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. 这两个方法,如果匹配成功,返回一个数组,匹配失败,返回null。 2. 当RegExp的global属性为false时,这两个方法的返回数组是一样的。 数组的第0个元素是整个pattern的第一个匹配字符串,接下来的元素是pattern第一个匹配中的子匹配字符串。 此外,数组还有index和input两个额外属性,index是匹配字符串的起始位置,input是整个输入字符串。 此时,RegExp的lastIndex属性一直是0。 demo: 代码如下:var s = this i...
这个问题是在著名的问答网站——stackoverflow上看到的。 之前也看到过JavaScript的这个问题,但是没有深入了解,今天在StackOverflow上看到了答案,感觉不错,记下来分享给大家。问题的描述是这样的: 代码如下:console.log(10..toString());//10 console.log(10.toString());//SyntaxError: Unexpected token ILLEGAL 为什么前者正常,而后者报错呢。原因就是,在JavaScript中,数字后面的"."操作符是的意义是不确定。因为它既...
json对象 代码如下:var json = {aa:true,bb:true}; var json1 = {aa:b,bb:{cc:true,dd:true}}; 1:js操作json对象 代码如下:for(var item in json){ alert(item); //结果是 aa,bb, 类型是 string alert(typeof(item)); alert(eval("json."+item)); //结果是true,true类型是boolean eval(("json."+item+"=false;")); //改变json对象的值 } 2:json对象转化为String对象的方法 代码如下:/** * json对象转字符串形式 */ functio...
字符串和数组在程序编写过程中是十分常用的类型,因此程序语言都会将String和Array作为基本类型,并提供许多字符串和数组的方法来简化对字符串的操作。JavaScript里面也提供了String类型和Array类型,并且有很多基本的String方法和Array方法来方便地对字符串进行合并、查找、替换、截取等处理。JavaScript作为一个脚本语言,又提供了一种动态解析运行的机制,而这特性,又让使得在String操作的时候出现一些结合使用Array的有趣方法...
JavaScript中valueOf函数方法是返回指定对象的原始值。使用方法: object.valueOf( )object是必选项参数是任意固有 JScript 对象。 每个JavaScript固有对象的 valueOf 方法定义不同。 对象 返回值Array 数组的元素被转换为字符串,这些字符串由逗号分隔,连接在一起。其操作与 Array.toString 和 Array.join 方法相同。Boolean Boolean 值。Date 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。Function 函数本身。Numb...
1.字符方法charAt() 、charCodeAt()、fromCharCode() 代码如下:var stringValue = "hello world"; alert(stringValue.charAt(1)); //"e" alert(stringValue[1]); //"e" alert(stringValue.charCodeAt(1)); //101 alert(String.fromCharCode(104,101)); //"he" 2.返回子字符串方法slice()、substr()、substring() slice()、substring()方法第一个参数指定子字符串的起始位置,第二个参数指定结算位置(不包括结束...
代码如下:function obj2str(o){ var r = []; if(typeof o =="string") return "\""+o.replace(/([\\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\""; if(typeof o == "object"){ if(!o.sort){ for(var i in o) r.push(i+":"+obj2str(o[i])); if(!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)){ r.push("toString:"+o...
1、charCodeAt方法返回一个整数,代表指定位置字符的Unicode编码。 strObj.charCodeAt(index) 说明: index将被处理字符的从零开始计数的编号。有效值为0到字符串长度减1的数字。 如果指定位置没有字符,将返回NaN。 例如: var str = "ABC"; str.charCodeAt(0); 结果:65 2、fromCharCode方法从一些Unicode字符串中返回一个字符串。 String.fromCharCode([code1[,code2...]]) 说明: code1,code2...是要转换为字符串的Unicode字符...
添加到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...
格式 camelize | capitalize | underscore | dasherize | inspect 变形 toArray | succ | times这里面一个有用的方法是inspect,按照参考手册的说明,他的作用是“返回该字符串针对调试的字符串表现形式(即用单引号或双引号包括起来,并使用 '\' 对特殊字符进行转义)”,在Object的toJSON里面也涉及到这个方法。 既然涉及到需要转义的字符,我们自然要一份转义字符信息,下面直接给出: 代码如下:String.spec...