javaScript属于弱语言类型浏览器脚本语法,当前数据类型是由值决定的;
1.typeof
用来检测基本数据类型的(相对来说不够精确),会将当前的数据类型以字符串的形式返回
基本语法
typeof 数据;
typeof(数据);
2.数据的划分
基本数据类型
- Number 数字
- String 字符串
- Boolean 布尔类型
- null 空指针
- undefined 未定义
复杂数据类型(引用数据类型)
- object
- Object 对象类
- Arrray 数组类
- function
3.Number
正数 负数 0 NaN Infinity (无穷大)
小数计算精度问题
// 因为js在进行运算 采用的IEEE-754双精度标准去运算,都会转为二进制进行运算因为0.1转为二进制是无限循环 0.0001 1001 1001 1001…(无限循环) 0.2转为二进制也是无限循环 进行取舍(约等于)结果就是不精确的
console.log(0.1 + 0.2); //0.30000000000000004
// console.log((0.1+0.2)==0.3);
// 解决方法:
// 将原来的每一项扩大10倍 最后缩小10倍
console.log((0.1 * 10 + 0.2 * 10) / 10);
4.String
用单引或双引包起来的就是字符串
字符串的属性
-
length 字符串长度 (字符的个数) 返回值是一个数值
-
获取当前字符串中对应的某个字符
-
语法
变量.charAt(index); //index:索引 变量[index] //IE7及以下获取到的undefined
-
5.Boolean
表示真或假
- true 真
- false 假
6.null 和undefined
- null:空指针 返回值是object
- undefined:未初始化,未赋值
7.Object
对象类,用来描述当前事物的详细信息。
对象的组成:一个对象是由属性名和属性值组成的
1.对象的创建
- 字面量的方式 {}
- var obj = {}; {}中没有内容 就是空对象
- var obj1 = {属性名:属性值,属性名:属性值,...};
2.对象的操作
-
获取属性值
对象.属性值; 对象[属性名]; -
设置属性值(原来没有就是增加,有的话就是修改)
对象.属性值 = 值; 对象[属性值] = 值;
8.Array
作用:存储任意数据类型的一个集合,没有数据就是空数组
描述:由索引和值组成,天生自带length属性,索引从0开始依次递增,最后一项的索引arr.length-1
1.数组的创建
-
字面量的方式 []
var arr = [];var arr1 = [10,"哈哈",true];
2.数组的属性
- length 数组的长度,数据的个数
3.数组的操作
-
获取
数组[索引];
9.函数
描述:具有特定功能的代码段
基本语法
//函数定义
function 函数名(){
//函数体
}
//函数调用
函数名();
函数名表示当前函数本身
10.typeof返回值
typeof一般用于基本数据类型检测 object下不能进行细分
- Number ->number
- Stirng ->string
- Boolean ->boolean
- null -> object
- undefined - > undefined
- Obecjt -> object
- Array->object
- Function ->function
11.基本数据类型和引用数据类型的本质区别
本质区别:基本数据类型操作的是值,引用数据类型操作的是地址
12.数据类型的强制转换
1.其它数据类型转为数字
引用数据类型转为数字,先内置调用toString()方法,然后再去转为数字
-
Number(数据);
- 将转完后的值 返回 转不成具体的数值 返回NaN
- 字符串转为数字,必须是纯数字字符串,一旦遇到非数字字符,就停转转换返回NaN,但是可以识别小数(只能识别一个小数),可以保留小数
- 布尔类型转为数字 true --> 1 false --> 0
- null --> 0 "" --> 0 [] --> 0
- 其它类型转为数字都是NaN
方法补充:
isNaN() 判断字符是否为非数字 true false
注意: 5 和 "5" 都认为是数字
-
parseInt(数据);
- 字符串转为数字一旦遇到非数字字符就停止转换了,并且不识别小数点,开头就是非数字字符返回NaN (转为整数)
- 其它类型全部返回NaN
- 数组特殊
-
parseFloat(数据);
- 字符串转为数字一旦遇到非数字字符就停止转换了,识别小数点,开头就是非数字字符返回NaN (只能识别一个小数点)
- 其它类型全部返回NaN
- 数组特殊
2.其它数据类型转为布尔
对于单个数据而言,只有0 NaN null undefined "" 是假的 其它的都是真的
- Boolean(数据);
3.其它类型转为字符串
区别:String(数据);可以将所有其它数据类型转为字符串,
变量.toString(),null和undefined没有这个属性
- String(数据);
- 返回字符串
- 变量.toString();
- 拼接空字符串
浙公网安备 33010602011771号