本文共 870 字,大约阅读时间需要 2 分钟。
很多人在编程的过程中有很多的疑问,比如说等于号,等于号谁都知道是由赋值的作用,那也仅仅对于变量而已,那对于对象呢?
好了,废话不多说。下面是小编的总结。
等于号具有赋值的作用,比如说a=3,就是把3赋值于a。这个是很简单的,大家都经常赋值,除了判断要双等于号外,但单等于号在初始化对象的时候进行赋值。
等于号具有传引用(隐式指针)的作用,这个也不难理解,比如说指针:a=b,对象a的指针指向对象b的地址,这时候a就引用了b的地址,起到了传地址的作用。
单等于号作用如上所述。下面从双等于号说起
1.双等于号
举一个例子,如if(a==b)就执行某某某语句,我们都知道实际上a==b不是所谓的变量对象值的比较,在java中一般两个变量的值的比较是a.equals(b)[其中a、b是两个变量对象值,任取]。所以实际上a==b是两个变量对象的栈地址的比较,这就涉及了栈、常量池和堆的概念,如果不懂请看博主的关于这三者的解释或者上网从java底层开始看。同时,双等于号是不严格等于。
不严格等于例子:
"1"== true;由于类型不同,会进行一个数据类型转换true转换为"1""1"== 1 在把"1"转换为1 在比较1 == 1所以true是等于1的
所以可以看出双等于的不严格性,三等于号就解决了这个问题。
2.三等于号
三等于号就是用来进行严格判断的,无论js还是java中都是如此,如下例的直观前端例子:
var c = "3"var b = 3c == b truec === b false
其中c是字符串,b是数值,而因为var类型是js里一个变量类型,也是唯一的变量类型,这就是js为什么是弱类型语言的原因,因为java还有8个基本数据类型呢!(骄傲(‾◡◝))~哔~~~跳过
因为就是数值在转换过程中不严谨,双等于号成立,如果还要进行更加严格的判断,连一点差错都没有,那就是得是三等于号啦,所以就是这个严格的符号运用在一系列稳定的程序设计中。
转载地址:http://sjtrn.baihongyu.com/