Javascript基础学习(2)_表达式和运算符
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)_表达式和运算符的更多相关文章
- javascript 核心语言笔记 4 - 表达式和运算符
表达式(expression)是 JavaScript 中的一个短语(phrases),JavaScript 解释器会将其计算(evaluate)出一个结果.程序中的常量.变量名.数组访问等都是表达式 ...
- Javascript基础学习(1)_类型、值和变量
1.null和undefined ①概念上区别: null是一个特殊的对象,是“非对象”,使用typeof后是object对象 undefined用未定义的值表示更深层次的“空值”,它是变量的一种取值 ...
- Javascript基础学习(3)_对象和数组
一.对象是一种无序的属性集合,每个属性都有自己的名字和值. 1.创建对象 花括号内逗号分隔 var person = { "Name" : "LiCheng", ...
- Javascript学习2 - Javascript中的表达式和运算符
原文:Javascript学习2 - Javascript中的表达式和运算符 Javascript中的运算符与C/C++中的运算符相似,但有几处不同的地方,相对于C/C++,也增加了几个不同的运算符, ...
- JavaScript深入浅出补充——(一)数据类型,表达式和运算符
项目基本做完,在进行下一阶段学习之前先看视频学习回顾一下JavaScript 一.数据类型 JavaScript中有五种原始类型和一种对象类型 JavaScript弱类型语言中隐式转换 num-0 字 ...
- Javascript权威指南——第二章词法结构,第三章类型、值和变量,第四章表达式和运算符,第五章语句
第二章 词法结构 一.HTML并不区分大小写(尽管XHTML区分大小写),而javascript区分大小写:在HTML中,这些标签和属性名可以使用大写也可以使用小写,而在javascript中必须小写 ...
- 笔记《JavaScript 权威指南》(第6版) 分条知识点概要3—表达式和运算符
[表达式和运算符]原始表达式,初始化表达式(对象和数组的),函数定义表达式,属性访问表达式,调用表达式,对象创建表达式,运算符概述,算术表达式,关系表达式,逻辑表达式,赋值表达式,表达式计算,其他运算 ...
- Python基础0:变量 赋值 表达式和运算符
变量: 前面我们在使用print()输出内容的时候,如果内容很长,后面要再次输出的时候,就需重新在输入一遍. 如果给输出的内容起个简单的别名.这样我们用简短的别名来代替长内容,下次要输出的时候就直接使 ...
- Python3基础-表达式和运算符
表达式和运算符 什么是表达式? 1+2*3就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数. 1+2*3经过计算后得到的结果是7,我们可以将计算结果存放在一个变量里,result=1+ ...
随机推荐
- Azure 媒体服务的 RTMP 支持和实时编码器
Cenk Dingiloglu Azure 媒体服务高级项目经理 直播流媒体目前已在公共预览版中提供,其中一项受支持的输入协议便是 RTMP.RTMP 是用于输入和分发包括直播流媒体在内的丰富媒体的一 ...
- java基于xml配置的通用excel单表数据导入组件(一、实际应用过程)
主要应用技术:poi + betwixt + reflect 一.实际应用过程 1.创建与目标表结构一样,表名为‘{目标表名}_import’的临时表: 2.创建用于存储导入问题数据的表:t_impo ...
- ORA-00054:资源正忙,要求指定NOWAIT
--ORA-00054:资源正忙,要求指定NOWAIT-- --以DBA角色, 查看当前数据库里锁的情况可以用如下SQL语句-- SELECT sid, serial#, username, osus ...
- poj 1654 Area(多边形面积)
Area Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17456 Accepted: 4847 Description ...
- usaco 土地并购 && hdu 玩具装箱
土地并购: Description 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长乘以最大 ...
- 【oracle】触发器简单实现
目标:实现实时备份uertest表数据至usertest_temp中,两表结构一致 解决:用oracle触发器实现同步 结果: 1.建表 -- 简单的用户表 create table USERTEST ...
- Linq中Take、TakeWhile、Skip、SkipWhile的比较(转)
参考文章:http://blog.csdn.net/lxfzgg/article/details/20534281 Take() , , , , , , , , , }; ); //从第一个元素开始, ...
- Linux统计文件夹下文件信息
统计当前文件夹里面有多少文件,即统计文件个数 ls -l |grep "^-"|wc -l 统计当前文件夹里面有多少文件夹,即统计文件夹个数 ls -l |grep "^ ...
- mysql通过查看跟踪日志跟踪执行的sql语句
在SQL SERVER下跟踪sql采用事件探查器,而在mysql下如何跟踪sql呢? 其实方法很简单,开启mysql的日志log功能,通过查看跟踪日志即可. 开启mysql的日志log方法: wind ...
- BZOJ 3265 志愿者招募增强版 单
标题效果:同1061 只是间隔为每种类型的志愿工作是多级 这是卡网络流量?未知 所有在所有的1061您将可以更改为在稍微改变- - #include <cmath> #include &l ...