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+ ...
随机推荐
- 求奇数偶数的和,,利用while循环
static void Main(string[] args) { while (true) { try ...
- 用sql语句写排名
使用SQL语句求排名 表jh03有下列数据: name score aa 99 bb 56 cc 56 dd 77 ee 78 ff 76 gg 78 ff 50 1. 名次生成方式1 , Score ...
- DevExpress控件汉化类 z
更新了一些字段,VER9.3.3 using System; using DevExpress.XtraEditors.Controls; using DevExpress.XtraGrid.Loca ...
- 初学acm感想
初学acm,觉得大部分题对我来说都是陌生的,好多类型没见过,好多题没思路,打击确实不小,或许这个阶段正是比较能考验人的时候吧,因为只有坚持下来才有收获,没有人生下来就是大神,所以不能气馁更不能放弃,有 ...
- git 和 github 使用笔记
想干这么一件事:写一个web自动化测试的项目,部署在公司内网的小服务器上. 我想拐个弯干这件事:公司有一个工作用的windows电脑,还有一个linux Ubuntu11.04的小测试服务器.我在本地 ...
- Windows Phone SDK 8.0 安装系统要求
Windows Phone SDK 8.0 是一个功能齐全的开发环境,可用于构建 Windows Phone 8.0 和 Windows Phone 7.5 的应用和游戏. Windows Phone ...
- Hyperic Agent 安装配置报 - No token file found, waiting for Agent to initialize
本人经过跟VMWare 支持的多方努力,问题终于得到解决,方案如下: * Stop the agent Windows service. * Make sure all the agent proce ...
- Python 库大全
作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...
- Unicode与 utf8的互相转换
<?php function unicode_encode($name) { $name = iconv('UTF-8', 'UCS-2', $name); $len = strlen($nam ...
- WPF ArrangeOverride与MeasureOverride
1.MeasureOverride 是FrameworkElement.MeasureOverride 方法 当重写在派生类中,单位是对于子元素所需要布局的大小并确定FrameworkElement ...