博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Javascript基础学习(2)_表达式和运算符
阅读量:5870 次
发布时间:2019-06-19

本文共 1391 字,大约阅读时间需要 4 分钟。

1.=====的区别(!=!==是相反的比较)

 

它们采用了同一性的两个不同定义。==是相等性,===是等同性。

 

①“===”进行两个值的比较

  • 两个值的类型不同,就不相等
  • 两个值是数字,并且值相同,除非其中一个或者两个都是NaN,否则他们是相同的。NaNNaN也是不同的,判断一个值是否是NaN,可以使用全局函数isNaN().
  • 两个值是字符串:如果长度不相等就不相同,如果长度相同并且每一个索引的字符也相同就认为两个字符串相同。
  • 两个值是布尔值,同为true或者false就认为相同
  • 两个值是对象、数组或者函数:如果它们引用同一个对象就认为相同,如果引用了不同的对象就认为不同,即使这两个对象具有完全相同的属性或者两个数组有完全相同的元素。

②“==”进行两个值的比较

如果两个值具有相同的类型,那么就检测他们的等同性。如果这两个值完全相同。他们就想的,如果不完全相同,则它们就不相等。

如果两个值的类型不同,它们也有可能相等。

  • 如果一个值是null,一个是undefined,那么认为它们相等。
  • 如果一个值是数字,另一个是字符串,把字符串转换为数字,再用转换后的值进行比较。
  • 如果一个值是false,转化为0,进行比较,值为true,转化为1进行比较。
  • 如果一个值是对象,另一个值是数字或者字符串,将对象转换成原始类型值,再进行比较。
  • 其他的数值组合是不相等。

例子:

"1" == true

先把true转换成数字1,然后把"1"转换成数字1,两者对比相等,于是返回true

感觉上,==进行比较有一个转换的过程。而===是没有这种感觉的,类型不同直接就返回false。

 

2.in运算符

in运算符要求其左边的运算数是一个字符串,或可以被转换为字符串,右边运算数是一个对象或者数组。

如果左边的值是右边对象的一个属性名,他返回true

 

3.instanceof运算符

左边运算数是一个对象,右边是运算数对象类的名字。

如果左边运算数是右边类的一个实例,它返回true,否则返回false

如果左边不是一个对象,右边是一个对象,那么它将返回false

 

4.字符串运算符

+用于字符串和数字时,它并不一定具有结合性。简而言之,就是结果依赖于操作执行的顺序。从下边的例子可以发现这一点:

S = 1+2+"blind mice" //结果是"3 blind mice"

T = "blind mice:" +1+2 //结果是"blind mice:12"

 

5.其他运算符

  • 条件运算 ?: 例子 x>0 ? x*y : -x*y;
  • typeof运算符
  • 对象创建运算符 new
  • delete 运算符  作用是删除一个对象的属性,数组元素或者变量。(注意并不是所有的对象的属性和变量都是可以删除的,某些内部核心属性和客户端属性不能删除,用var声明的用户定义变量也不能被删除)(如果使用delete运算符删除一个不存在的属性,它返回的是true
  • void运算符 它是一个一元运算符,可以出现在任何类型操作数之前。用法比较特殊,它总是舍弃运算数的值,然后返回undefined。这种运算符常用在客户端的JavascriptURL中,可以计算表达式的值,而不浏览器显示出来。

 

转载于:https://www.cnblogs.com/dcz2015/p/5220653.html

你可能感兴趣的文章
win10专业版激活方法
查看>>
转:彻底弄懂 Http 缓存机制 - 基于缓存策略三要素分解法
查看>>
[Android] The handler class should be static or leaks might occur原因及解决方法
查看>>
Linux下安装Oracle11G(虚拟机)
查看>>
类(二)——拷贝控制(浅拷贝,深拷贝,浅赋值,深赋值)
查看>>
(转)机器学习经典书籍
查看>>
[Angularjs]国际化
查看>>
EWS 通过SubscribeToPullNotifications订阅Exchange新邮件提醒
查看>>
PHPExcel将Excel数据导入数据库
查看>>
javascript详解1
查看>>
JDBC事务控制管理
查看>>
欧拉角与四元数转换——编程
查看>>
Weekly 11
查看>>
firefox ubuntu 中文包
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
Tomcat本地提权漏洞预警(CVE-2016-1240)
查看>>
Python基础6_小数据池,编码补充
查看>>
vue 开发系列(三) vue 组件开发
查看>>
扫盲如何在ECLIPSE中使用条件断点
查看>>
# 20155229 2016-2017-2 《Java程序设计》第七周学习总结
查看>>