JavaScript 比较运算符

171 阅读4分钟

数据类型

Number

首先了解JavaScript不区分整数和浮点数,统一用Number表示

123; // 整数123

0.456; //浮点数0.456

1.2345a3; //科学计数法表示1.2345*1000,等同于1234.5

-99; //负数

NaN; //not a number 当无法计算时,用NaN表示

Infinity; //表示无限大 ,当数值大于JavaScript的number所能表达的最大值时,用其表示


计算机使用二进制,也就是只用0和1两个符号

十六进制表示整数


字符串

单引号,双引号括起来的任意文本....   'a'   "a"这只是一种表达方式,不是字符串的一部分


布尔值

与布尔代数的表示完全一致 

true 

false


判断条件

&&并且  条件全部满足

||或者  只满足条件其一

!非   不然,不是   取反


对Number做比较的时候,可以通过比较运算符得到一个布尔值

就像从小学开始学习的加减乘除一样   判断大于、小于、等于 的对错

>

<

=


javaScript允许对任意数据类型进行对比

其中有两种比较运算符

相等运算符==

会自动转换数据类型再比较......

这里我需要说一下   [ 廖雪峰大大文档中说 :使用==比较,会自动转换数据类型在比较,很多时候会得到诡异的结果        氢氦锂铍硼,...钠镁铝硅磷   我也不知道

恒等运算符===

不会自动转换数据类型,如果出现数据类型不一致将直接返回false   ,一致将进行比较

NaN是特殊的Number  他与其他值都不等,连他自己都不等于自己
唯一能判断NaN的方法是通过isNaN()函数     返回true   false

注意浮点数的相等比较

1/3===(1-2/3);//false 

遇到以后要知道这不是JavaScript的设计缺陷

浮点数在运算过程中会产生误差,因为计算机无法精确表示无限循环小数.要比较两个浮点数是否相等,只能计算他们之差的绝对值,看是否小于某个阈(yu)值

Math.abs(1/3-(1-2/3))<0.0000001;//true


null 和undefined

null表示一个空的值    他和0以及空字符串''不同  

0是一个数值

''表示长度为0的字符串,而null表示空

JavaScript的null表示       undefined表示未定义     区分两者的意义不大     在多数情况下使用的都是null      undefined仅仅是在判断函数参数是否传递的情况下有用


java  null 

Swift用nil 

Python用None表示


数组

一组按照顺序排列的集合,集合的每个值都称为元素.

JavaScript中的数组可以包括任意数据类型

举栗子    [1,2,3,'hello',null,true]       包含6个元素   元素之间用,分隔       

另一种创建数组的方法是通过Array()函数实现

new Array(1,2,3);

出于代码的可读性考虑.建议直接使用[]

数组的元素可以通过索引来访问

起始值是0

var arr=[1,2,3,'hello',null,true]

arr[0]; //返回索引为0的元素   1

arr[5]; //返回索引下标为5的元素 true

arr[6]; //索引超出了范围 返回undefined


对象

JavaScript的对象是由键-值 组成的无序集合

var person={

   name:'bob',

   age:20,

   tags:['js','web','moblie'],

   city:'beijing',

   hasCar:true,

   zipcode:null 

};

JavaScript对象的键都是字符串类型 值可以是任意数据类型.

person对象包含6个键值对.    属性   名字,年龄,技能,城市...

person的 name属性为bob ...

在代码中,或得对象的属性   对象变量.属性名

person.name;//bob


变量

var a; //声明变量但为赋值 undefined

var b=1; //声明变量并为其赋值  1

var c='c'; //声明一个字符串  

cvar d=true; //声明布尔值 true

var e=null; //e的值为null