node js valueOf问题

news/2024/7/19 12:53:26 标签: javascript, js, linux, node.js, 数据结构

JavaScript调用valueOf方法将对象转换为原始值。你很少需要自己调用valueOf方法;当遇到要预期的原始值的对象时,JavaScript会自动调用它。默认情况下,valueOf方法由Object后面的每个对象继承。 每个内置的核心对象都会覆盖此方法以返回适当的值。如果对象没有原始值,则valueOf将返回对象本身。JavaScript的许多内置对象都重写了该函数,以实现更适合自身的功能需要。因此,不同类型对象的valueOf()方法的返回值和返回值类型均可能不同。
举个例子:

javascript">var a = ???
if (a == 1 && a == 11) {
    console.log(a);
}

当你看到这个if后肯定会觉得这怎么可能进得去,今天我就要教大家如何设计这个a使得程序能够走进if。
例子如下:

javascript">var a = {
    i:1,
    valueOf: function(){
        if (this.i == 1) {
            this.i = 3;
            return 1;
        }else{
            return 11;
        }
    }
}
if (a == 1 && a == 11) {
    console.log(a);
}

输出如下:

javascript">{ i: 3, valueOf: [Function: valueOf] }

我们利用valueOf这个方法,巧妙的将a的值变更为1和11。还有别的方法能够完成这个if吗?请在评论区贴出你的解法。
以上就是node js valueOf的一些问题了。


http://www.niftyadmin.cn/n/1600169.html

相关文章

未来的多线程软件模型--TBB pipeline 模型简介

TBB提供几个并发模型中,最与众不同的是pipeline模型. Intel曾经在NP IXP 2400平台上实现过pipeline模型.不过是硬件实现. 这次TBB是纯软件实现. 对于这种模型,优点和缺点都很明显. 优点: 模块划分清晰简介,代码量少,便于单个模块测试.在硬件线程多于32个系统中,pipeline是最…

让IE6和IE7共存

前天看到了IE7取消了正版验证,就把IE从6升级到了IE7,可是这两天在测试程序时遇到了一些问题,以前在IE6的功能现在IE7没有了,并且有时候要测试程序对浏览器的兼容性,需要考虑IE6和IE7并存。Google了一下,大概…

node js Map对象问题

JavaScript的默认对象表示方式{}可以视为其他语言中的Map或Dictionary的数据结构,即一组键值对。但是JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。 举个例子: let m {1:3,2:4}; …

node js BigInt问题

JavaScript 的 Number 对象是经过封装的能让你处理数字值的对象。Number 对象由 Number() 构造器创建。JavaScript的Number类型为双精度IEEE 754 64位浮点类型,也就是我们常说的C中的double类型,其整数取值范围为-(253 - 1) 至 253 - 1。 因此当我们的整…

[Linux] gdb crash之后,杀掉僵尸进程的办法

gdb调试程序的时候,有时gdb会因为某些原因crash掉。这时被调试的那个进程往往就成了僵尸进程。这种僵尸进程用killall是杀不掉的,用kill -9或者kill -SIGKILL也是杀不掉的,甚至退出用户登录也杀不掉。很多人这时候只好reboot机器。我在网上查…

node js Array map问题

JavaScript 中 Array 的map() 方法创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。 使用这个方法可以减少要写的代码,可以提升代码的开发效率。 举个例子: var numbers [1, 2, 3]; var doubles numbers.map(n…

为什么Dekker在x86/x64架构的CPU上会失效!

为什么Dekker在x86/x64架构的CPU上会失效! Dekker算法是很多老教科书(含国内新教科书)上提到的一种多线程lock-free编程的算法. 这里来解释一下,为什么Dekker在x86/x64架构的CPU上是错误的. 首先看一下什么是Dekker算法: int x0; int y0; ThreadA: ThreadB: x1; y1; r1…

node js Array every问题

every() 方法测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。如果所有元素都满足条件,则返回 true。 举个例子&#…