JavaScript数据类型分为以下几种:
- 字符串(String)
- 数值(Number)
- 布尔(Boolean)
- 数组(Array)
- 对象(Object)
- 空(Null)
- 未定义(Undefined)
- 函数
- 其他
原始数据(基本数据)类型:
对象(复杂数据)类型:
1.1 字符串(String)
字符串是存储字符(比如 "Bill Gates")的变量。
字符串可以是引号中的任意文本。可以使用单引号或双引号;
变量字符串:如:var text="js教程"
可以使用"+"进行字符串的连接。
注:字符串类型可以和任何类型做+运算;
字符串字面量 : "JavaScript"
转义符 :
我是一个
"
正直
"
的人
JavaScript
中常用的转义字符
(转义就是转变原有的意思)
:
![](https://img-blog.csdnimg.cn/bbdf2d9137d042deafd09ff0f28715af.png)
- 字符串长度
length
属性用来获取字符串的长度。
var str = 'Hello World';
console.log(str.length);
- 字符串拼接
字符串拼接使用
+
连接。
console.log(11 + 11);
console.log('hello' + ' world');
console.log('100' + '100');
console.log('11' + 11);
console.log('male:' + true);
1.
两边只要有一个是字符串,那么
+
就是字符串拼接功能。
2.
两边如果都是数字,那么就是算术功能。
1.2 数值(Number)
JavaScript
只有一种数值类型。数值可以带小数点,也可以不带。极大或极小的数字可以通过科学(指数)计数法来书写:3e4
。
数值可以通过运算符进行计算。
浮点数值的最高精度是
16
位小数,但是在进行算术计算时其精度远远不如整数。例如,
0.1
加
0.2
的结果 不是0.3
, 而是
0.30000000000000004
。这个舍入误差会导致无法测试特定的浮点数值。
数字可以写成十进制、八进制、十六进制。
- 八进制在js中表示是第一位一定要是0,后面就是八进制字数序列(0~7)
- 十六进制字面量前两位必须是0x,后面跟十六进制数字(0~9及A~F)。字母A~F不区分大小写。
温馨提示:
科学(指数)计数法、八进制、十六进制表示的数字在输出时统统会转换成十进制。
- 数值字面量:数值的固定值的表示法
- 进制
-
浮点数
- 数值范围
- 数值判断
1.3 布尔(Boolean)
Boolean
(布尔)类型用于表示真假.
Boolean
类型仅包含两个值:
true
和
false:
- 就两个值,一个是true,一个false,true表示真 false表示假
- 前面,讲的string或number数据类型,对应的值有无数个
- 使用关系运算符运算的结果,就是布尔数据类型
计算机内部存储:
true
为
1
,
false
为
0
。
1.4 数组(Array)
1.4.1 数组的概念
所谓数组,就是将多个元素(通常是同一类型)按一定顺序排列放到一个集合中,那么这个集合我们就称之为数组。
1.4.2 数组的定义及使用
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。
使用关键字
new
创建或
[]
创建数组的方式:
- var 数组名=[数组值......值N];
- var 数组名= new Array(值1......值N);
- var 数组名= new Array();
可以通过数组的下标来访问数组的元素:
- 数组元素的顺序从0开始:数组名[0]=值;
- 数组名[1]=值;
/**
JavaScript数组的创建方式:
1. 构造函数创建
var 数组名 = new Array(); -- 得到一个空数组
var 数组名 = new Array(数组); -- 创建指定长度的数组
var 数组名 = new Array(值1,值2,值3...) 创建数组并赋予值
2. 快捷创建
var 数组名 = [];
var 数组名 = [值1,值2,值3....];
JavaScript数组的属性:
length属性 用来获取数组的长度
JavaScript数组的特点:
JS数组可以存储任意数据类型
JS数组自动扩容,不是固定长度
注意事项:
当JS变量只有声明没有赋值的时候,去调用,那么undefined
当JS根本没有这个变量的时候,去调用,那么报错 arr is not defined
*/
var arr1 = new Array();
document.write("数组1的长度为:" + arr1.length + "<br>");
var arr2 = new Array(5);
document.write("数组2的长度为:" + arr2.length + "<br>");
//给数组存储数据: 通过下标来存储数据
//语法: 数组名[下标] = 值;
arr2[0] = 10;
arr2[1] = 20;
arr2[2] = 30;
arr2[3] = 40;
arr2[4] = 50;
arr2[10] = 100;
//调用数组里面的值
//语法: 数组名[下标]
document.write("下标1的值是:" + arr2[1] + "<br>");
document.write("下标20的值是:" + arr2[20] + "<br>");
document.write("数组2的长度为:" + arr2.length + "<br>");
var arr3 = new Array(5,"Hello",true,44.22);
document.write("数组3的长度为:" + arr3.length + "<br>");
var arr4 = []; //创建一个空数组 类似于 new Array();
var arr5 = [1,3,5,7]; //创建数组并赋值
var arr6 = [7];
document.write("数组6的长度为:" + arr6.length + "<br>");
// 补充 :数组 的长度 可以动态改变
var scores = []; // 空数组
console.log(scores.length);
// 清空数组
scores.length = 0;
console.log(scores);
1.4.3 遍历数组
遍历:遍及所有,对数组的每一个元素都访问一次就叫遍历。
数组遍历的基本语法:
for(var i = 0; i < arr.length; i++) {
// 数组遍历的固定结构
}
// 获取数组中的每一项,并打印(遍历数组)
var names = ['zs', 'ls', 'ww', 'zl'];
for (var i = 0; i < names.length; i++) {
console.log(names[i]);
}
//遍历数组 先打印最后一项 长度 - 1 长度 - 2
var names = ['zs', 'ls', 'ww', 'zl'];
for (var i = names.length - 1; i >= 0; i--) {
console.log(names[i]);
}
for(var index in arr){
console.log(arr[index])
}
1.4.4 数组中新增元素
数组的赋值:
// 格式:数组名[下标/索引] = 值;
// 如果下标有对应的值,会把原来的值覆盖,如果下标不存在,会给数组新增一个元素。
var arr = ["red", "green", "blue"];
// 把red替换成了yellow
arr[0] = "yellow";
// 给数组新增加了一个pink的值
arr[3] = "pink";
1.5 对象类型(Object)
Object
类型是一个特殊的类型,我们通常把它称为引用类型或者复杂类型
:
- 其他的数据类型我们通常称之为 “原始类型”,因为它们的值质保函一个单独的内容(字符串、数字或者其他);
- Object往往可以表示一组数据,是其他数据的一个集合;
- 在JavaScript中我们可以使用 花括号{} 的方式来表示一个对象;
- Object是对象的意思,后续我们会专门讲解面向对象的概念等;
对象由花括号定义。对象有属性和方法组成。
在括号内部,无论是对象的属性还是方法都是以键和值对的形式
(key: value)
来定义。
多个属性或方法由逗号分隔。
例如:
var person1 = {
id:1001,
name:"张三",
age:12,
eat:function(){
alert("吃饭的行为");
},
sleep:function(){
alert("睡觉的行为");
}
}
- 在Javascript中,所有的对象都继承自Object对象。
- 对象没有赋值的属性,该属性的值为undefined。
- 对象的方法是函数,后面会详解
对象属性有两种寻址方式:
对象名 . 属性名对象名 [" 属性名 "]
可以使用以下语法访问对象方法:
objectName.methodName()
1.6 空(Null)
Null
也是一个只有一个值的数据类型,它的值就是
null
,任何变量只要给其赋值为
null
的话这个变量的数据类型就是Null
类型。
可以通过将变量的值设置为
null
来清空变量
。
1.7 未定义(Undefined)
这个值表示变量不含有值或未声明。
它的值只有一个,那就是
undefined
。
在声明变量时如果没有将变量赋值的话这个变量也是属于
Undefined
类型的。
如果一个变量没有声明就直接去访问解释器会报错误信息,但是这样的变量如果使用
typeof
返回的结果也是"undefined"
。
Null和Undefined的区别:
- Null 已定义,并初始化为null。
- Undefined:未定义,或者未初始化 。