草庐IT

算术运算

全部标签

javascript - Javascript 的 Function.toString() 的逆运算

对于Javascript应用程序,我需要能够让用户保存对象的状态。这涉及保存一组以前动态创建或通过GUI创建的自定义函数,并在以后加载这些存储的函数。本质上,我需要序列化和反序列化函数。现在我通过使用Function对象的.toString()方法实现序列化部分:func.toString().replace('"','\"').replace(/(\r)/g,'').replace(/(\n)/g,'').replace(/(\t)/g,'')这给了我这样美丽的“序列化”函数(注意该函数未命名):"function(someParameter){this.someFunctionNa

javascript - instanceof 运算符在继承链的后续更改时返回 false

当在构造函数上设置原型(prototype)时,instanceof运算符仅返回true,直到原型(prototype)被更改。为什么?functionSomeConstructorFunction(){}functionextendAndInstantiate(constructorFn){constructorFn.prototype={};//CanbeanyprototypereturnnewconstructorFn();}varchild1=extendAndInstantiate(SomeConstructorFunction);console.log(child1ins

Javascript:仍然对 instanceof 运算符感到困惑

这article定义instanceof如下:Theinstanceofoperatortestswhetheranobjecthasinitsprototypechaintheprototypepropertyofaconstructor.这是一个公平的解释,在我从EloquentJavascript书中看到这段代码之前,生活一直很美好:functionTextCell(text){this.text=text.split("\n");}TextCell.prototype.minWidth=function(){returnthis.text.reduce(function(wid

javascript - 如何正确实现严格比较和取模运算符

我已经为我正在参加的udacity类(class)编写了这段代码,但不确定我需要更改什么才能获得正确答案我被要求编写一个代码,如果它是偶数则打印“even”,如果它是奇数则打印“odd”当我运行代码时,它给出了我想要的响应,所以我不确定为什么我会收到“需要在我的条件语句中使用严格比较”的反馈,并且我需要使用模运算符来确定是否数字是偶数还是奇数我需要有人指出如何编写更“严格”的比较和使用(或正确使用,因为我认为我正在使用它)模运算符。varnumber=19;if(number%2){console.log("odd");}else{console.log("even");}

c# - 为什么在 JavaScript 和 C# 中使用 & 运算符时返回不同的值?

我在JavaScript和C#中使用&运算符执行相同的过程,但结果不同。C#代码Int64x=(634586400000000000&4611686018427387903);x=634586400000000000;JavaScript代码varx=(634586400000000000&4611686018427387903);x=0;有什么想法吗? 最佳答案 Bitwiseoperators在javascript中将操作数转换为带符号的32位整数(存储在nativeIEEE754float中)。

Javascript:比较运算符中操作数的顺序

这个问题在这里已经有了答案:Theorderofexpressionsinanifstatement[duplicate](4个答案)关闭6年前。我看到很多人写是不是有什么具体原因if(1===a){...}代替if(a===1){...}我已经给出了一个答案,其中我写了类似Array===obj.constructor的东西,这是当有人问我他经常看到人们这样写而不是obj时。构造函数===数组。那么我使用哪种方式真的很重要吗?

javascript - 使用短路运算符抛出错误 - javascript

我知道jslint/jshint不喜欢它,但我想知道做类似的事情是否有任何真正的问题。varerr=function(msg){thrownewError(msg);};示例1:赋值varfoo=bar.foo||baz.foo||err('missingfooproperty');示例2:验证typeoffoo['bar']!=='string'&&err('barhastobeastring');有什么我应该注意的问题吗? 最佳答案 据我所知,这与PHP中的或die()一样错误。运算符的短路性是明确定义的,因此只有在达到最后一种

javascript - 本函数中JavaScript位运算符的解释

我有这个代码块:EventBus.on('pfio.inputs.changed',function(state,prev_state){varchanged=prev_state^state;for(varpin=0;pinstate将是一个8位数字:00000000prev_state将是一个8位数字:11001110这些数字与开关状态相关,因此state中的第一个表示引脚1关闭。在prev_state中,第一个1表示开关8打开。我理解简单的代码执行,就是这些我无法理解的部分:(changed&(1对此事的任何解释都会有很大帮助! 最佳答案

javascript - + 运算符与 parseFloat

Example1knockoutextenders页面的描述了一种舍入用户输入并确保它只是数字的方法。它工作得很好,但是通过查看源代码他们做了一件我不明白的奇怪的事情,那就是在第8行他们这样做:parseFloat(+newValue)newValue是一个字符串。当我最初问这个问题时,我不知道+做了什么-更进一步poking和一个linktoadifferentMDNpage从我得到的一个最初的答案表明它是一个等价于number(str)的一元运算符并且+str和parseFloat(str)(以字母字符结尾的字符串的处理和十六进制的解释似乎是头条新闻)。我仍然不明白为什么在这种情况

javascript冒号运算符混淆

我自己正在学习javascript。与一些javascript有混淆,price=14;name="Mary";apples:5;//Thislineexecutingwithouterror"orranges":6;//Thislinegettingerroralert(name);这两行都可以毫无错误地用于json对象。但是当我在json对象之外使用这些行时,第二行("orranges":6;)出现错误。这是为什么?为什么第一行没有给出错误(apples:5;),有什么方法可以在json对象之外使用它吗? 最佳答案 :不是运算符