3个运营商要注意的javascript

通常我习惯于C #,所以我会认为什么样的运营商应该做的。但是有一天,你的习惯被其他语言推翻了。我想知道是否有强烈的好奇心。

心,刚在js,这个习惯我被颠覆了,在这里看什么颠覆我的运营观。

a:运算符==

=运算符可以颠覆,可以从下面的例子中看到。

10= 10

如果这是放在C #,编译器会毫不犹豫地告诉你,杂种羔羊,类型是不同的,你比个毛线啊…但在JS是什么



从上面,你可以看到无论你好奇或好奇,答案就在那里。也许有人会问,如果它变成10到10或10到10,所以这也是真实的。

我一直吐槽的地方,如果是C #,你也可以看看如何对付IL,和JS。你看不到的,只能听故事的一面,而不是眼见为实。

所以除了记住是记住,我只能说字符串10被转换为10,然后它被比作塑料。

真=1

这个问题可以理解一点。事实上,在C # IL,真假转换为1和0,所以JS将真实的1时判断,然后将其与塑料。

我认为这不寻常。记住它。



{价值函数(){ return:10 } } = = 10

这是一个奇妙的问题,对象可以与int类型进行比较,但在js中,它确实可以完成,如果对象与int字符串比较,原则是这样的,

JS会先调用valueOf方法第一,即对象是数字。事实上,在这里,有趣的是,我们的自定义值重写父类的方法的价值。

这个例子是判断10=10。



也PS在这里,如果值是不是在你的类中定义的方法,对JS引擎内部会发现toString()方法了,如果是执行。



我不知道,当你进入这些新用途的接触,你觉得有点慌乱,像一种混乱如果你担心程序有一个潜在的错误,那么为了保险起见,

为同一数据类型的比较,当然,JS也有一个逻辑运算符= = =运算符可以说C #也是最接近,这额外的=是

在判断类型=相等的基础上例如:



二:和| |算子

两算子是很奇妙的,在我们的思维习惯,两边的人员必须是布尔型,但在JS这些定义将被彻底颠覆,正是这些新的规则,所以我们可以做很多新的东西,如jQuery源码,可以找到这样的痕迹无处不在。



我们从图片中看到这句话,但是,b.parentNode,你能理解这句话的意思吗事实上,这意味着判断B是否存在,如果B不存在,那么

也许B是未定义的,NULL,0或南。如果B的存在,然后回到m.parentnode。真有趣。如果你使用C #,将有几个条件。

是为了简化代码,然后看| |操作,这是源代码,可以用来描述洪水,但乍一看,尤其是像C #在空算子,所以时代的亲密关系

让我们以ret =结果| | { }为例。如果结果有值,那么结果为null,如果结果为空,未定义,则为0,则结果为。

这样的任性,节省程序员很多如果判断,最后加上一句,事实上,像C # IL在相同,但底部的JS给我们做,如果判断。