学习目标:
1.认识JavaScript的数据类型
基本类型:undefined、unll、Boolean、Number、String
引用类型:object、function、Array
2.认识typeof操作符
- typefo:检测变量的类型
- 语法:typeof变量 或 typeof(变量)
(变量本身是没有类型的,它的类型取决于它的值)
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
// typeof
var name = "marry";
alert(typeof(name)); //string
</script>
</body>
</html>
3.理解undefined、null
- undefined 即为 未定义
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var age;
alert(age); //undefined
//声明未赋值
</script>
</body>
</html>
- null:表示一个空的对象指针。
-如果需要某个变量来保存将来的值,那么最好的做法就是将该变量初始化为null
4.认识Number
number:表示整数和浮点数
5.理解isNaN()
NaN:即非数值(Not a Number)是一个特殊的数值
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var age = 18;
alert(age -3); //15
alert(age - "abc") //NaN
//打印它的类型却是number
alert(typeof age - "abc") //number
</script>
</body>
</html>
说明:
- 任何涉及NaN的操作(NaN+10)都会返回NaN
- NaN不与任何值相等,包括NaN本身
isNaN()语法: isNaN(n) - 检测n是否为 “非数值”
说明:
- isNaN()对接收到的数值,会先尝试转换为数值,在检测是否为非数值
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var age = 18;
alert(isNaN(age)) //false
</script>
</body>
</html>
6.掌握数值转换
(1)- Number()
当转换的值是string类型时,返回的则是NaN,因为无法得知string值转换过来是多少
parseInt() 和 parseFloat()则是用来把字符串转换成数值的
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var age = "18";
alert(Number(name)) //18
</script>
</body>
</html>
(2)- parseInt()
说明:
- 会忽略字符串前面的空格,直至找到第一个非空格字符(以数字开头,否则返回NaN)
- 1、parseInt():转换空字符返回NaN
- 2、parseInt()这个函数提供两个参数:转换时使用的基数(即多少进制)
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var breadth = parseInt("50px");
alert(breadth) //50
var a = "a5";
alert(parseInt(a)); //NaN
alert(parseInt("0xf",16)); //转换为16进制
</script>
</body>
</html>
(3)- parseFloat()
说明: 从第一个字符开始解析每个字符,直至遇见一个无效的浮点数字符为止(以数字开头,否则返回NaN)
- 1、除了第一个小数点有效外,其余都无效
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
</head>
<body>
<script>
var b = parseFloat("12.2px");
alert(b) //12.2";
var c = parseFloat("0.54aa");
alert(c) //0.54
</script>
</body>
</html>
7.JS中的string和boolean类型:
string类型用于表示由零或多个16为Unicode字符组成的字符序列,简单的说就是字符串。需要用双引号 (“Some writing”)或单引号(‘Some writing’) 来表示。
既然Number可以利用内置方法进行转换,那字符串固然也是可以的
toString()与String():
- toString:
语法:str.toString(),将str转换为字符串。
说明: 在不清楚值是否为null或undefined的情况下,尽量使用String()函数,它可以将任何类型的值转换为字符串。
<!DOCTYPE html>
<html>
<head>
<title>string</title>
</head>
<body>
<script type="text/javascript">
var id = 23;
var idstr = id.toString();
alert(idstr); //23
alert(String(idstr)); //String()用法
</script>
</body>
</html>
你可能会疑惑,这个输出不也是数值嘛…
其实我们可以利用之前讲过的typeof来检测一下看他是不是string
<!DOCTYPE html>
<html>
<head>
<title>string</title>
</head>
<body>
<script type="text/javascript">
var id = 23;
var idstr = id.toString();
alert(typeof idstr); //string
alert(String(typeof idstr)); //String()用法
//不清楚类型使用
var m; //声明未赋值
alert(String(m)) //undefined
</script>
</body>
</html>
Boolean: 用于表示真假的类型,只有两个值,true(真)、false(假)。
类型转换
- 除0之外的所有数字,转换为布尔型都为true(真)
- 除" "之外的所有字符,转换为布尔型都为true
- null和undefined转换为布尔型为false