草庐IT

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

javascript - 如何通过 Jquery/Javascript 知道以 px 为单位的占位符字符串宽度?

这是html我只想知道文本宽度。不是输入宽度,也不是字符数。请帮我提一个合适的建议。 最佳答案 您可以使用以下代码段:var_$tmpSpan=$('').html($('#Test').attr('placeholder')).css({position:'absolute',left:-9999,top:-9999}).appendTo('body'),textWidth=_$tmpSpan.width();_$tmpSpan.remove();alert(textWidth);--DEMO--

javascript - 字符串数组的字符串操作

我有一个字符串数组,如下例所示["i.was.wen.the.coding","i.am.wen.to","i.am.new","i.am","i"]你可以看到数组中的所有句子都可以被拆分。我需要制作逻辑算法模式来创建一个有意义的句子,方法是将数组反转并在末尾缝合单词。如果你从最后开始阅读它,因为i.am.new.to.coding从每个句子中获取最后吐出的值,最终形成一个有意义的句子。我试图在javascript或jquery中创建这样的代码,并且坚持了一天多。因为它是如此棘手。请任何脚本专家帮助完成此操作。我感谢您的帮助。时间差 最佳答案

javascript - 不能将 String.prototype.match 用作 Array.some 的函数吗?

这行不通:vars='^foo';console.log(['boot','foot'].some(s.match));UncaughtTypeError:String.prototype.matchcalledonnullorundefined但是这样做:vars='^foo';console.log(['boot','foot'].some(function(i){returni.match(s)}));这是为什么?我以某种方式想象String.prototype.match函数太“原始”之类的,但究竟是为什么呢?因为我没有使用ES2015,所以第二个版本看起来很冗长。有替代方案吗

Javascript:字符串与对象

这个问题在这里已经有了答案:Whydoes("foo"===newString("foo"))evaluatetofalseinJavaScript?(5个答案)关闭6年前。我查看了stackoverflow上的所有问题和答案,但找不到简单的答案。字符串和对象到底有什么区别?例如,如果我有这段代码:vara='Tim';varb=newString('Tim');到底有什么区别?我知道new会使代码复杂化,而newString会减慢速度。此外,我理解a==b是true,但更严格地说a===b是false。为什么?我似乎无法理解对象和字符串创建背后的过程。例如:vara=newStrin

javascript - 在 TypeScript 中使用解构和剩余类型的函数参数

我有一个函数:exportdefault({input:{name,onChange,value,...restInput},meta,...rest})=>(...);鉴于“name”是一个字符串,“onChange”是一个函数,“value”是一个字符串,“meta”是一个对象,我如何为这些参数添加类型?我最好的猜测是这样的:exportdefault({input:{(name:String),(onChange:function),(value:String),...restInput},(meta:Object),...rest})=>(...);但是好像有语法错误。甚至我不