在JavaScript中存在以下数据类型:
1.Number类型:JavaScript不分整数和浮点数,统一用Number表示
2.字符串类型:用''或""括起来的文本,如果文本中要用到'或"则需要转义字符 \'代表'
3.布尔值:true和false,可以进行与或非运算(&&,||,!)
4.比较运算符:>,==,<,===
注意:javaScript允许不同数据类型做比较
==比较,先自动类型转换再比较,很多时候会得到诡异的结果
===比较,不会自动类型转换,如果数据类型不一致返回false,坚持使用===比较
NaN这个特殊的Number,用===时和其他所有值都不相等,和自己也是不相等的
唯一判断NaN的方法是通过isNaN()函数,isNaN(NaN);
浮点数的相等比较:
1/3===(1-2/3);是错误的,因为浮点数在运算过程中会产生误差,
比较两个浮点数是否相等只能计算他们之差的绝
对值,看是否小于某个阈值
Math.abs(1/3-(1-2/3))<0.0000001;true
5.null和undefined
null表示一个空的值,它和0以及''空字符串不同。
undefined表示值未定义
区分两者的意义不大,大多数情况下应该用null,undefined仅仅在判断函数参数是否传递的情况下有用
6.数组
JavaScript的数组可以包含任意数据类型[1,2,'haha',null,true];
另一种创建数组的方法通过Array()函数实现:new Array(1,2,3);
出于代码可读性考虑,建议直接使用[]
7.对象
JavaScript的对象是一组由键-值组成的无序集合,例如:
var person ={
name:'柴劲松';
age:20;
hasCar:true;
}
javaScript对象的键都是字符串类型,值可以是任意数据类型,上述person对象
一共定义了三个键值对,每个键又称为对象的属性
获取对象的属性,用 对象变量.属性名 的方式
person.name;
person.hasCar;
8.变量
变量名是大小写英文,数字,美元符号,和_的组合,而且不能用数字开头,不能为JavaScript关键字
9.strict模式
JavaScript最初不强制要求用var申明变量,造成这个变量自动声明为全局变量,容易造成错误
使用var申明的变量则不是全局变量,他得范围限制在该变量被申明的函数体内,同名变量在不同函数体中不冲突
所以ECMA在后续规范中强制通过var申明变量,未通过var申明的变量使用会报错,启用strict模式的方法:
在JavaScript代码第一行写上'use strict';支持strict模式的浏览器将开启strict模式运行JavaScript
总结:
其中我觉得比较容易出错的地方就是"=="和"===",所以希望大家注意。遇到判断的时候用===进行判断。