草庐IT

javascript - 为什么 String.prototype 里面的 'this' 指的是对象类型,而不是字符串类型?

我正在尝试扩展字符串以提供其自身的散列。我正在使用Node.js加密库。我这样扩展字符串:String.prototype.hashCode=function(){returngetHash(this);};我有一个看起来像这样的getHash函数:functiongetHash(testString){console.log("typeis"+typeof(testString));varcrypto=require('crypto');varhash=crypto.createHash("sha256");hash.update(testString);varresult=hash

javascript - Javascript 的 toUpperCase() 语言安全吗?

Javascript的字符串原型(prototype)方法toUpperCase()是否会在每种支持UTF-8的语言/字符集中提供自然预期的结果?我试过简体中文、韩语、泰米尔语、日语和西里尔语,到目前为止结果似乎还算合理。我可以相信该方法是语言安全的吗?示例:"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス".toUpperCase()>"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス"编辑:正如@Quentin指出的那样,还有一个String.prototype.toLocaleUpper

javascript - 在javascript setTimeout中将字符串作为函数运行?

为什么这段代码有效?setTimeout("document.body.innerHTML='TEST'",1000)不应该吗?setTimeout(function(){document.body.innerHTML='TEST'},1000)setTimeout如何将字符串转为函数? 最佳答案 引用MDN的setTimeoutdocumentationcodeinthealternatesyntaxisastringofcodeyouwanttoexecuteafterdelaymilliseconds(usingthissyn

javascript - 为什么我在进行突变时会收到 "Cannot return null for non-nullable field"错误?

这个问题在这里已经有了答案:WhydoesaGraphQLqueryreturnnull?(6个答案)关闭3年前。我正在尝试服务器端的(Apollo)GraphQL,但遇到了一个可能很愚蠢的问题。我正在尝试注册用户,但不断收到下面链接图片中显示的错误。问题是什么?忽略非常简单的身份验证流程,因为我只是在测试GraphQl以下是相关的代码片段:架构exportdefault`typeUser{id:ID!name:String!email:String!}typeQuery{allUsers:[User]currentUser:User}typeMutation{createAccoun

javascript - 字符串对象与文字 - 修改原型(prototype)?

我想知道为什么向字符串文字的原型(prototype)添加方法似乎有效,但添加属性却不行?我正在研究与thisquestion有关的想法,并具有以下代码:String.prototype._str_index1=0;String.prototype._str_reset=function(){this._str_index1=0;};String.prototype._str_substr=function(len){varret=this.substr(this._str_index1,len);this._str_index1=this._str_index1+len;return

javascript匹配()错误

我正在尝试计算pre元素的行数,我正在使用它:varnumlines=$('#mypreelement').text().match(/\n\r?/g).length+1;它可以工作,但在某些情况下我会遇到错误Error:$('#mypreelement').text().match(/\n\r?/g)isnull这只发生在某些页面上,但这些页面与其工作的页面没有任何不同,当然除了内容之外...为什么? 最佳答案 这意味着它无法匹配它们中的任何一个,并且null没有length属性。所以试试这个...if(varlines=$('#

JavaScript 字符串连接速度

谁能给我解释一下:http://jsperf.com/string-concatenation-1/2如果你很懒,我测试了A)和B):一个)varinnerHTML="";items.forEach(function(item){innerHTML+=item;});B)varinnerHTML=items.join("");两个测试的items都是相同的500元素字符串数组,每个字符串都是随机的,长度在100到400个字符之间。A)最终速度提高了10倍。这怎么可能——我一直认为使用join("")连接是一种优化技巧。我的测试有什么缺陷吗? 最佳答案

javascript - 在javascript中将字符串转换为函数

我用谷歌搜索了一下,但这个特殊问题与“我如何从字符串中评估函数名称”有点太相似了,所以我找不到解决方案,我想将字符串转换为一个函数所以说我有类似的东西:for(vari=0;i我要如何对foo进行类型转换才能调用someArray[0]();我需要函数中的值,有什么想法吗?编辑:我只是用“值(value)”代替了“我”,为混淆道歉更新:好的,我接受了icktoofay的回答,因为它有效,可以回答你的大部分问题和疑虑;我已经尝试了大多数建议的方法,所有这些方法要么没有将变量传递给调用位置范围,要么需要与最后一个函数变量值保持一致的闭包,不幸的是我无法控制其余代码所以我无法修改函数最终被调

Javascript TRUE 和 "true"为什么有人使用字符串而不是 boolean 值?

我在一些javascript代码中看到人们写这样的东西:varmyVar="true";//...if(myVar=="true"){//...}else{//...}为什么人们不使用TRUE或FALSE?据我所知,boolean类型对于浏览器来说是显而易见的。或者只是一个糟糕的代码......并且尽量不要以这种方式编写。 最佳答案 这只是糟糕的代码。尽量不要这样写。这种代码的可维护性非常糟糕。==(而不是===)和true作为字符串。PS:此外,"true"==true//false。对于===参数,这仅仅是因为true==1//

javascript - 如何在 javascript 中按空格拆分字符串,除非空格出现在 "quote"之间?

这个问题在这里已经有了答案:Splitastringbywhitespace,keepingquotedsegments,allowingescapedquotes(4个答案)javascriptsplitstringbyspace,butignorespaceinquotes(noticenottosplitbythecolontoo)(3个答案)关闭9年前。最终我试图改变这个:varmsg='-m"thisisamessage"--echo"anothermessage"testarg';进入这个:['-m','thisisamessage','--echo','anotherme