计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在JavaScript中定义了以下几种数据类型:字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。
字符串(String)
字符串是存储字符(比如 “Bill Gates”)的变量。
字符串可以是引号中的任意文本。您可以使用单引号或双引号:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
var a="hello world";//有引号 字符串
var b="123";//有引号 字符串
var c=" ";//有引号 字符串
var d="false";//有引号 字符串
console.log(typeof a);
console.log(typeof b);
console.log(typeof c);
console.log(typeof d);
</script>
</head>
<body>
</body>
</html>
您可以在字符串中使用引号,只要不匹配包围字符串的引号即可:
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
连字符和加号(重点)
键盘上+在JS中有两层含义:
1) 连字符
2) 加
<script type="text/javascript">
console.log("1" + "2"); //字符串与字符串的连字,所以输出12
console.log(1 + 2); //加号两边都是数字,所以相加,输出3
console.log(1 + "2"); //加号两边出现了字符串,所以就是连字符,输出12
console.log("1" + 2); //加号两边出现了字符串,所以就是连字符,输出12
console.log("1" + " " + "2"); //三个字符串拼接,输出1 2
console.log("1" + "" + "2"); //三个字符串拼接,但是第二个是空字符串,输出12
</script>
console.log("我" + "爱" + "你"); //连字符,把三个独立的汉字,连接在一起了console.log("我+爱+你"); //原样输出
console.log(1+2+3); //输出6
同样是加号,有时候表示的是连字符,有时候表示的是加号。什么时候是连字符?什么时候是加呢?
如果加号两边都是数值,此时是加。否则,就是连字符。
<script type="text/javascript">
var a = "1";
var b = 2;
console.log(a + b);
</script>
var a = 1; //数字
var b = 2; //数字
console.log(a + b);
var a = 234234;
var b = 234323112;
console.log("a+b"); //由于加上了引号,所以就表示原样输出
var a = 1;
var b = 2;
console.log("a" + b); //"a"就不是变量了!所以就是"a"+2 输出a2
var a = 123;
var b = "123";
console.log(a + "b");
JavaScript转义字符
在我们写JAVAScript脚本时,可能会要HTML文档显示或使用某些特殊字符(例如:引号或斜线)。(例如:)但是前面提过,声明一个字符串时,前后必须以引号括起来。如此一来,字符串当中引号可能会和标示字符串的引号搞混了,此时就要使用转义字符(Escape Character)。
代码 | 输出 |
---|---|
‘ | 单引号 |
“ | 双引号 |
& | 和号 |
\ | 反斜杠 |
\n | 换行符 |
\r | 回车符 |
\t | 制表符 |
\b | 退格符 |
\f | 换页符 |
document.write ("You \& me are singing!")
输出:You & me are singing!
数字(Number)
如果一个变量中,存放了数字,那么这个变量就是数值型的。
JavaScript种,只要是个数,那么就是数值型的,无论整浮、无论大小、无论正负,都是number类型的。
“浮”就是浮点数,就是“小数”,术语叫做“浮点数”。
<script type="text/javascript">
var a = 100; //类型都是number
var b = 234234234324324324; //类型都是number
var c = 3.234234234324324; //类型都是number
var d = -23423432432432432; //类型都是number
var e = -34.3423423432; //类型都是number
var f = 0.324234234; //类型都是number
console.log(typeof a); // number
console.log(typeof b); // number
console.log(typeof c); // number
console.log(typeof d); // number
console.log(typeof e); // number
console.log(typeof f); // number
</script>
数字类型的取值范围:
◆ 能表示的最大值是±1.7976931348623157乘以10的308次方
◆ 能表示的最小值是±5 乘以10的-324次方
数字类型的表示方式:
◆十进制表示法
◆十六进制表示法
以0x开头 数字0-9 和 a(A)-f(F)
◆八进制表示法
以数字0开头 0-7之间的组合。
除常用数值外,javascript还支持以下两个数值
**Infinity:**当在javascript中使用的数字大于javascript所能表示的最大值时,
javascript就会将其输出为Infinity,即无穷大的意思.
当在javascript中使用的数字小于javascript所能表示的最小值时,
javascript就会将其输出为-Infinity,即无穷小的意思.
**NaN:**javascript中的NaN是”not a number”(不是数字)的意思.如果在数字运算是产生了未知的结果或错误,
javascript就会返回NaN,这代表着数字运算的结果是一个非数字的特殊情况.
NaN是一个很特殊的数字,不会与任何数字相等,包括NaN,
在javascript中只能使用isNaN()函数来判断运算结果是不是NaN.
布尔(Boolean)
数值型里面的值,有无穷多个,因为世界上所有的数字,都是数值型;
字符串型的值,有无穷多个,因为世界上所有的文字、语句都是字符串型;
布尔类型的值,就两个,true、false。
<script type="text/javascript">
var a = true; //真
var b = false; //假
console.log(a); //输出
console.log(b); //输出
console.log(typeof a); //输出类型
console.log(typeof b); //输出类型
var c = "true";
var d = "false";
console.log(c);
console.log(d);
console.log(typeof c);
console.log(typeof d);
</script>
false、undefined 、null、0、”” 为 false
true、1、”somestring”、[Object] 为 true
数组(Array)
数组是编程的基础部分。一个数组就是一系列数据。我们可以储存许多数据在一个变量中,这提高了代码可读性,让人更好理解代码。这使相关数据传递到函数中执行更简单。
数组中数据称为 元素。
这是一个简单的数组:
// 1, 1, 2, 3, 5 和 8 是数组中的元素
var numbers = [1, 1, 2, 3, 5, 8];
<script type="text/javascript">
var myarr=new Array(1,2,3);
console.log(typeof(myarr));
var cars=new Array();
cars[0]="Audi";
cars[1]="BMW";
cars[2]="Volvo";
console.log(typeof(cars));
</script>
数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
对象(Object)
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
var person={firstname:"John", lastname:"Doe", id:5566};
上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
空格和折行无关紧要。声明可横跨多行:
var person={
firstname : "John",
lastname : "Doe",
id : 5566
};
对象属性有两种寻址方式:
name=person.lastname;
name=person["lastname"];
JavaScript的内置对象:
<script type="text/javascript">
var mydate=new Date();
console.log(typeof(mydate));
</script>
空(Null)与未定义(Undefined)
Undefined 这个值表示变量不含有值。
可以通过将变量的值设置为 null 来清空变量。
cars=null;
person=null;
<script type="text/javascript">
var a; //undefined未定义类型
var b=null;//空类型 object //在内存中不存在这个值
var c=""; //string 字符串类型 //特殊的空 但内存中是存在的
console.log(typeof(a));
console.log(typeof(b));
console.log(typeof(c));
/*
null与undefined的区别是,
null表示一个变量被赋予了一个空值,
而undefined则表示该变量尚未被赋值。
*/
/*
这里必须要注意的是:
null不等同于空的字符串("")或0。
*/
</script>