“=”“==”“===”

来源:互联网 发布:网络系统安全巡检方案 编辑:程序博客网 时间:2024/05/16 06:32

前言

  今天突然听到了===觉得很好奇,便有了这篇文章。

正文

  整体来说:
  在C中,=是一种赋值运算符,==是一种关系运算符,在js中,==是比较值,===是比较类型值。
  具体来说:
  在C语言中,举个例子,
  (1)a=10,意思是把10赋值给a;
  (2)a==10,不会改变10的值,也不会改变a的值,只是将a中的值和10进行比较,如果相等,则为Ture,反之,则为False。

  在js中,举个例子,
  (1)a==10,意思是将a中的值和10进行比较,如果相等,则为Ture,反之,则为False;
  (2)a===10
   ①意思是把a的类型和值和10的类型和值进行比较,比如,a是string类型,值为10,10的类型为Int,值为10 ,即使值都是10 ,但是类型不同,它们就不相同。
   ②如果两个值都为int类型的,而且值都为10,那么除非其中一个或两个都是NaN(Not a Number)(这种情况它们不是等同的),否则它们是等同的。值NaN永远不会与其他任何值等同,包括它自身,要检测一个值是否是NaN,可以使用全局函数isNaN()。
   ③如果a和10都是string类型的,而且在串中同一位置上的字符完全相同,那么它们就完全等同。如果字符串的长度或内容不同,则不相等。
   ④如果a和10都是布尔型为true,或者a和10都是布尔型为false,则相等。
   ⑤如果a和10引用的是同一个对象、数组或函数,则相等,反之,引用的不是同一个,则不相等。
   如果两个值都是null或都是undefined,它们完全相同。

总结

  不怕不知道,就怕不知道。不管是哪个C中,只有“=”和“==”用作运算符,但是在js中,“=”“==”和“===”都非常常见。

原创粉丝点击