JavaScript基础 --- 数据类型
数据类型
为什么要学?
因为值可以是一个数字 ( 100 ),也可以是一个名字(小马哥),等等,为了更多的分类,我们要学习数据类型,这样就可以轻松的处理不同的数据了
javascript中数据类型分为简单数据类型和复杂数据类型,下面是简单数据类型 ( 5个 )
number、string、boolean、undefined、null
数值 字符串 布尔 声明未赋值 空类型
复杂类型 ( 3个 ) : 数组 array … 函数 function … 对象 object
一、number-数字类型
1.进制值 (简单了解)
在javascript中表示一个数字,除了有我们常用的十进制11, 22,33
等,还可以使用八进制、十六进制表示等。
- 十进制
//我们最常用的进制,进行算术运算的时候,八进制和十六进制最终都要转换成十进制
//逢10进1
var num = 9;
var num = 29;
- 八进制
// 0开头的数字, 逢8进1
var num1 = 07;
var num2 = 012;
// 八进制 0-7 逢八进一 , 10
var ba = 0321;
// 12 = 2*8^0 + 1*8^1 = 10
// 321 = 1*8^0 + 2*8^1 + 3*8^2 = 1+16+ 192 = 209
console.log(ba);
- 十六进制
// 0x开头的数字,逢16进1, 数字范围1-9A-F
var num = 0xA;
var num = 0x12;
tips : 关于二进制,计算机在只认识二进制,所以所有的代码最终都会转换成二进制数据。
2.浮点数
浮点数就是小数,,比如0.1
- 浮点数
var num = 0.1;
- 科学计数法
//e 10的多少此方 前面得有数字
//e+5 10^5
//e-3 10^-3
//当一次数字很大的时候,可以用科学计数法来表示
var num = 5e+5; //5乘以10的5次方
var num = 3e-3;//3乘以10的-3次方
- 浮点数精度丢失问题
//在进行浮点数运算的时候,可能会出现精度丢失的问题
0.1 + 0.2 = 0.30000000000000004;
0.2 + 0.2 = 0.4;
//尽量少用浮点数进行运算,不要让浮点数进行比较。
解决办法 : 根据小数点后面的位数量 乘以对应的整数;
0.1 + 0.2 ==> (0.1*10+0.2*10) / 10 = 0.3
0.01 + 0.02 呢?
二、字符串类型 - string
字符串类型,使用双引号 "
或者 '
包裹起来的字符
//双引号和单引号必须成对出现
var str = 'hello world';
var str = "hello world";
1.字符串长度
每一个字符串都有一个length属性,可以获取到字符串中字符串的个数
var str = "akdjflksjdflk";
console.log(str.length);
2.转义字符
思考,如何打印?
// 大家好,我姓'熏',我叫孙悟空
// 离开'他'吧, 我偷"电瓶车"养你
1. 单引号和双引号可以互相嵌套,但是不能嵌套自己
2. 使用转义符
3.字符串拼接 +
-
+
号具有字符串拼接功能,它能将两个字符串拼接成一个字符串。 -
+
号同时具有算术加法的功能,它能将两个数字进行相加 - 如果
+
号两边有一个是字符串,那么就是拼串的功能,如果都是数字,那么就是算数的功能。
// 第一种情况 : 字符串 + 字符串
var a = "hello";
var b = "itcast";
console.log(a + b);//字符串拼接功能
// 第二种情况 : 数值 + 数值
var a = 100;
var b = 100;
console.log(a + b);//加法
// 第三种情况 : 字符串 + 数值
var a = '100';
var b = 100;
console.log(a + b);//字符串拼接功能
思考练习 :
'我是'
var name = '小马哥';
拼接成一句话 : 我是小马哥
console.log ( '我是'+name) 还是 console.log ( '我是name');
三、布尔类型 boolean
布尔类型:true 和 false
//布尔类型只有两个值
true:表示真
false:表示假
注意:
1. 区分大小写,不要写成True或者是False了
2. ‘true’ 和 true , 前者是字符串类型
四、undefined和null
他们都属于获取非正常值的类型
- undefined表示一个没有赋值的变量
- null表示一个空的对象, ( 例如 : 获取一个元素,id写错了,获取不到,返回一个null)
字面量赋值 与 变量赋值
- 字面量赋值,字面量也叫直接量,值是固定不变的,浏览器能够直接识别的量,比如
11, "abc", true, false, undefined, null
等都是字面量,可以直接会使用。 - 变量赋值:浏览器必须要经过声明之后,才认识变量,如果没有声明,直接使用变量是会报错的。