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

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

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

  • 两个值的类型不同,就不相等
  • 两个值是数字,并且值相同,除非其中一个或者两个都是NaN,否则他们是相同的。NaN和NaN也是不同的,判断一个值是否是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。这种运算符常用在客户端的Javascript:URL中,可以计算表达式的值,而不浏览器显示出来。

Javascript基础学习(2)_表达式和运算符的更多相关文章

  1. javascript 核心语言笔记 4 - 表达式和运算符

    表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 ...

  2. Javascript基础学习(1)_类型、值和变量

    1.null和undefined ①概念上区别: null是一个特殊的对象,是“非对象”,使用typeof后是object对象 undefined用未定义的值表示更深层次的“空值”,它是变量的一种取值 ...

  3. Javascript基础学习(3)_对象和数组

    一.对象是一种无序的属性集合,每个属性都有自己的名字和值. 1.创建对象 花括号内逗号分隔 var person = { "Name" : "LiCheng", ...

  4. Javascript学习2 - Javascript中的表达式和运算符

    原文:Javascript学习2 - Javascript中的表达式和运算符 Javascript中的运算符与C/C++中的运算符相似,但有几处不同的地方,相对于C/C++,也增加了几个不同的运算符, ...

  5. JavaScript深入浅出补充——(一)数据类型,表达式和运算符

    项目基本做完,在进行下一阶段学习之前先看视频学习回顾一下JavaScript 一.数据类型 JavaScript中有五种原始类型和一种对象类型 JavaScript弱类型语言中隐式转换 num-0 字 ...

  6. Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句

    第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...

  7. 笔记《JavaScript 权威指南》(第6版) 分条知识点概要3—表达式和运算符

    [表达式和运算符]原始表达式,初始化表达式(对象和数组的),函数定义表达式,属性访问表达式,调用表达式,对象创建表达式,运算符概述,算术表达式,关系表达式,逻辑表达式,赋值表达式,表达式计算,其他运算 ...

  8. Python基础0:变量 赋值 表达式和运算符

    变量: 前面我们在使用print()输出内容的时候,如果内容很长,后面要再次输出的时候,就需重新在输入一遍. 如果给输出的内容起个简单的别名.这样我们用简短的别名来代替长内容,下次要输出的时候就直接使 ...

  9. Python3基础-表达式和运算符

    表达式和运算符 什么是表达式? 1+2*3就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数. 1+2*3经过计算后得到的结果是7,我们可以将计算结果存放在一个变量里,result=1+ ...

随机推荐

  1. C# winform 导出导入Excel/Doc 完整实例教程[网上看到的]

    还真没做过winform的导出导入,今天上网百度了一下.结果--- 所以还是我自己写个吧.之前做过web的,半搬半做就OK. 1添加引用:Aspose.Cells.dll(我们就叫工具包吧,可以从网上 ...

  2. BZOJ_1015_星球大战_[JSOI2008]_(并查集)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1015 n 个点,被 m 条边相连.进行k次删点操作,问第一次操作前和每次操作后的集合数(直接或 ...

  3. Red and Black

    Red and Black Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  4. Eclipse无法识别Android真机的解决方法

    使用IORegistryExplorer(在Developer Tool)可以查看连接上的USB设备的信息.选择IOUSB,可以看到名为连线的安卓设备,比如小米idVendor是0x2717. ech ...

  5. Java新手入门必须掌握的30个基本概念

    今天给大家推荐的文章是有关Java基本概念的,掌握好这些基本概念对学习J2SE.J2EE.J2ME都很重要,也能更好地理解Java的精髓,初学者要注意啦! ▶Java概述: 目前Java主要应用于中间 ...

  6. Performance Counter的使用

    原文地址:http://blog.csdn.net/jiangxinyu/article/details/5480401 PerformanceCounter 基本介绍以及示例方法 一 Perform ...

  7. nyoj 353 3D dungeon

    3D dungeon 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 You are trapped in a 3D dungeon and need to find ...

  8. hdoj 2816 I Love You Too

    I Love You Too Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

  9. 关于一个WCF调用的服务端和客户端的配置信息集合

    客户端的配置我知道. 但是: httpTransport maxReceivedMessageSize="2147483647" <dataContractSerialize ...

  10. linux内核数据结构--进程相关

    linux里面,有一个结构体task_struct,也叫“进程描述符”的数据结构,它包含了与进程相关的所有信息,它非常复杂,每一个字段都可能与一个功能相关,所以大部分细节不在我的研究范围之内,在这篇文 ...