草庐IT

符号运算

全部标签

javascript - 空格字符作为 JavaScript 中的标点符号

在ECMAScript规范(http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf)的第7.7章(标点符号)中,标点符号的网格在最后一列的第3行似乎有一个空隙。这实际上是空格字符标点符号,对吗?我知道可以在JavaScript代码中的标记之间可选地插入空格字符(以提高可读性),但是,我想知道它们实际上在哪里需要...为了找到答案,我在缩小版的jQuery库中搜索了空格字符。这些是我的结果:需要一个空格...(请参阅下面的更新)...在关键字和标识符之间:functionx(){}varx;ret

javascript - 符号 : How does implicit string conversion work in JavaScript?

阅读有关JavaScript中的Symbol的文档,并在一些环境(Chrome、Firefox、Node.js)中进行测试,我意识到我对隐式字符串转换的理解是有缺陷的。我一直觉得对象的toString()方法在尝试转换为字符串时被调用,如果该函数没有返回原始值,那么它会调用对象的toPrimitive()方法,那么如果它不起作用,它将出现类型错误。但是,此解释未能涵盖Symbol抛出的TypeError:varsym=Symbol("test");try{console.log(sym+"ing");}catch(error){console.error(error);}TypeErr

javascript - IE e.keyCode - 如何区分&符号和向上箭头?

我正在尝试修复一个jQueryUI小部件上的一个非常奇怪的javascript行为。IE7(winXP),jQuery1.2.6(是的,这是一个旧版本)。小部件是一个组合框,它捕获键盘事件并对箭头键具有特殊行为。当我尝试在flexbox输入字段中键入“&”字符时,出现了奇怪的行为。flexbox有一些代码如下://initialization$myInputElement.keypress($.flexbox.process_key);$.flexbox.process_key=functionprocess_key(e){$.flexbox.flexboxFromInput(this

Javascript国际象棋符号转换函数

我正在寻找一个javascript库来转换带有移动符号的PGN文件,包括片段和目的地,例如:...3.cxd5Qxd5...仅使用平方坐标表示,例如:...3.c4-d5h5-d5...如果没有图书馆,要让这block石头坚固起来将需要大量工作,因为它必须逐步完成每一步,并验证合法的移动以确定哪一block可以到达目的地方block。javascript中有什么可以帮助我,或者我可以轻松移植的其他语言吗? 最佳答案 前言:我不是真正的棋手,也不完全了解PGN。但是,我确实认为这是正确的。如果我离开了,请告诉我。既然你说你想做这个服务

javascript - 考虑到最佳实践,我们可以使用双一元运算符吗!在 JavaScript 中?

根据我的理解,一元!运算符执行隐式类型转换,有时用于类型转换。所以基本上!运算符将其操作数转换为bool值并将其取反。现在:!!x//SameasBoolean(x)事实上:!!'true'===Boolean('true')//true所以我假设!!x和Boolean(x)执行相同的操作。我想知道:您是否知道任何使我的假设错误的注意事项?就良好实践而言,应首选哪种方式?您知道不同的ECMAScript版本或浏览器vendor之间有什么需要注意的差异吗? 最佳答案 您的假设是正确的。这正是它的工作原理,我不知道使用它时需要特别小心。

javascript - "|>"运算符在 JavaScript 中有什么作用?

我最近在阅读有关JavaScript的文章,遇到了一些对我来说似乎很陌生的语法:constmax={a:1,b:2,c:3}|>Object.values|>(_=>Math.max(..._))在这种情况下,|>究竟意味着什么? 最佳答案 管道运算符(|>)调用它的第二个操作数(应该是一个函数)并将它的第一个操作数作为参数传递给它。也就是说,arg|>func相当于func(arg)它的目标是使函数链更具可读性。就像现在(2021年)一样,它是Mozilla创建的非标准和实验性的东西,只有通过明确启用它才能在Firefox中运行。

javascript - 为简单的数学运算生成语法树

我正在尝试为具有简单数学运算符(+、-、*、/和括号)的给定字符串生成语法树。给定字符串“1+2*3”:它应该返回一个像这样的数组:["+",[1,["*",[2,3]]]]我做了一个函数来转换[1,”+”,2,”*”,3中的“1+2*3”。问题是:我不知道优先考虑某些操作。我的代码是:functionisNumber(ch){switch(ch){case'0':case'1':case'2':case'3':case'4':case'5':case'6':case'7':case'8':case'9':case'.':returntrue;break;default:returnf

javascript - 为什么javascript中保留 '@'符号,它的作用是什么?

var@foo='bar';//SyntaxError:missingvariablename.{'@foo':'bar'};//SyntaxError:invalidlabel.varobj={'@foo':'bar'};obj.@foo;//TypeError:can'tconvertAttributeNametostringvarobj={'@foo':'bar'};obj['@foo'];//"bar"谁能向我解释为什么不允许在变量名中使用“@”符号以及我应该使用它做什么? 最佳答案 它不是保留的或特殊的,它只是不是一个有效

javascript - 函数运算符可以别名吗?

有没有办法像eval一样为function运算符设置别名而不需要太多开销?我想写fntest(){...}代替functiontest(){...}去除压缩代码中的一些字节。只是好奇。 最佳答案 Isthereawaytoaliasfunctionoperatorwithouttoomuchoverhead?没有。当然,除非您使用的是ECMAScript6,它应该包含所谓的"fatarrow"syntax。:vartest=(arg1,arg2)=>arg1+arg2;在那之前,你会不断地声明:vartest=function(ar

javascript - 为什么在删除之前使用点符号检查属性比直接删除属性更快?

我问了thisquestion,事实证明,当从元素中删除属性时,首先使用elem.xxx!==undefined检查元素是否存在可以加快运行时间。Proof.为什么它更快?有更多的代码要处理,您将不得不遇到removeAttribute()方法,无论您采用何种方式。 最佳答案 嗯,首先你需要知道的是elem.xxx与elem.getAttribute()不同或与该属性相关的任何其他方法。elem.xxx是DOM元素的属性,而属性和DOM内部HTML上的元素,既相似又不同。例如,以这个DOM元素为例:和这段代码://Letsayvar