草庐IT

符号运算

全部标签

javascript - 在插入的节点后插入插入符号

所以我有一个方法,它接受一个标签并将选定的文本包装在该标签中。functionwrap(tag){varsel,range;if(window.getSelection){sel=window.getSelection();if(sel.rangeCount){range=sel.getRangeAt(0);varselectedText=range.toString();range.deleteContents();range.insertNode(document.createTextNode('['+tag+']'+selectedText+'[/'+tag+']'));}}}然

javascript - 为什么符号不隐式转换字符串

为什么Symbol('test').toString()运行良好,但我不能使用''+Symbol('test')?它会抛出错误:cannotconvertaSymbolvaluetoastring为什么隐式类型转换不起作用?为什么代码不等于''+Symbol('test').toString()? 最佳答案 根据ECMA-262,使用additionoperator在Symbol类型的值上结合字符串值首先调用内部ToPrimitive,返回符号。然后调用内部ToString对于Symbols,这将引发TypeError异常。因此调用

javascript - Javascript 中变量前的 + 运算符是什么?

我正在研究RaphaelJS库,但我看到了这个:Animation.prototype.delay=function(delay){vara=newAnimation(this.anim,this.ms);a.times=this.times;a.del=+delay||0;returna;};延迟变量前的+运算符是什么?谢谢。 最佳答案 如果可能,它会将String变量转换为数字:+'21.2'等于Number(21.2)。如果转换失败,它返回NaN(这就是||0在您的示例代码中发挥作用的地方)

javascript - 逗号运算符在参数列表中返回第一个值而不是第二个值?

MDN声称:Thecommaoperatorevaluatesbothofitsoperands(fromlefttoright)andreturnsthevalueofthesecondoperand.但是,当我尝试运行alert(1,2);时,它显示“1”而不是“2”。我是不是误会了什么? 最佳答案 在函数调用的上下文中,逗号用于将参数彼此分开。因此,您正在做的是将第二个参数传递给alert(),它会被默默地忽略。你想要的可以通过这种方式实现:alert((1,2));多余的括号自己构成一个参数;在它们内部,您可以使用逗号作为运

javascript - 三元运算符在 JSHint 中显示错误 - 需要赋值或函数调用,但看到的是表达式

我有一个三元运算符dir==='next'?++$currentSlide:--$currentSlide;在我的JS中用来递增或递减一个整数。当我在grunt中运行脚本时,JSHint将这一行突出显示为Expectedanassignmentorfunctioncallandinsteadsawanexpression.谁能告诉我哪里出了问题?我应该以不同的方式设置我的条件吗? 最佳答案 您将条件运算符误用为if语句,这就是您收到该注释的原因。代码中的实际工作是作为表达式的副作用完成的,表达式的结果将被忽略。作为一个真正的if语句

javascript - 你如何用空格和标点符号分割 javascript 字符串?

我有一些随机字符串,例如:你好,我叫约翰。。我希望将该字符串拆分成这样的数组:Hello,,,,my,name,is,john,.,。我尝试了str.split(/[^\w\s]|_/g),但它似乎不起作用。有什么想法吗? 最佳答案 在任何非单词字符上拆分str即不是A-Z、0-9和下划线。varwords=str.split(/\W+/);//assumesstrdoesnotbeginnorendwithwhitespace或者,假设您的目标语言是英语,您可以使用以下方法从字符串中提取所有语义有用的值(即“标记化”字符串):va

从有符号到无符号的 JavaScript C 风格类型转换

如何在javascript中输入一个数字?a=(unsignedint)atoi(arg1);b=(unsignedint)atoi(arg2);假设a和b可以签名。我想将4字节有符号整数转换为4字节无符号整数。我知道在javascript中没有类型转换或签名/未签名之类的东西。我正在寻找一种易于理解的算法。 最佳答案 您可以尝试a=arg1>>>0,但我不确定它是否会满足您的要求。参见thisquestion了解更多详情。 关于从有符号到无符号的JavaScriptC风格类型转换,我们

javascript - 如何全局替换字符串中的管道符号 "|"

如何全局替换字符串中的|(竖线)符号?当我尝试用"so|me|str|ing".replace(/|/g,'-')替换它时,我得到"-s-o-|-m-e-|-s-t-r-|-i-n-g-" 最佳答案 |有specialmeaning(A|B表示“匹配A或B”),因此您需要对其进行转义:"so|me|str|ing".replace(/\|/g,'-'); 关于javascript-如何全局替换字符串中的管道符号"|",我们在StackOverflow上找到一个类似的问题:

javascript - 解析电子邮件中 ​​ "@"符号之前的文本

我正在尝试编写一个函数,它将用户的电子邮件作为参数并返回电子邮件的第一部分,直到但不包括“@”符号。问题是我对函数很糟糕,这个函数有问题,但我不确定它是什么。当我尝试将函数写入页面以查看它是否正常工作时,它一直显示未定义。functionemailUsername(emailAddress){varuserName="";for(varindex=0;index我确信还有其他方法可以做到这一点,但我需要大致遵循这种格式,即使用函数检查“@”之前的内容并使用方法找出它。 最佳答案 像这样:returnemailAddress.subs

javascript - 将带符号的十进制转换为用二进制补码编码的十六进制

我需要使用二进制补码符号将一个有符号整数编码为十六进制。例如我想转换e.g.-24375to0xffffa0c9.到目前为止,我一直在研究以下几行:parseInt(-24375).toString(2)>"-101111100110111"这与WolframAlphadisplays相匹配,但我不确定如何获得数字(ffffa0c9)的带符号24位int表示。我已经弄清楚如何获取无符号二进制数并将其表示为二进制补码:~parseInt("101111100110111",2)+1>-23475但我不确定要将此数字的二进制表示转换为十六进制。有什么想法吗? 最