JavaScript是一门动态语言,不需要提前声明变量的类型,在程序运行过程中,类型会被等号右边的值来自动确定。
JS把数据类型分为两类,一类是简单数据类型(number、string、Boolean、undefined、null);另一类是复杂数据类型(object)
数据类型
数值型
有八进制,在数字前面加上0表示八进制,输出的时候默认是十进制。
十六进制,在数字前面加上0x表示十六进制。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1、数值型
var a = 10
b = 010
c = 0x9
console.log(b);
console.log(c);
</script>
</head>
<body>
</body>
</html>
在数字型中有三个特殊值,Infinity表示无穷大,-Infinity表示无穷小,NaN(not a number)表示一个非数值。
可以使用isNaN用来判断是否是数字,返回结果是bool类型。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1、数值型
var a = 10
b = 'list'
console.log(isNaN(a));
console.log(isNaN(b));
</script>
</head>
<body>
</body>
</html>
字符串类型
用单引号或者双引号。推荐使用单引号。如果单引号之中还想包含引号,则用单双引号避开就行。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 1、数值型
var a = 10
b = 'list'
console.log(isNaN(a));
console.log(isNaN(b));
// 2、字符串类型
var str = 'hello world"!"'
console.log(str);
</script>
</head>
<body>
</body>
</html>
在JS中的转义符,用\开头
\n,换行符;\ 斜杠;'单引号; "双引号; \t tab缩进;\b空格
获取字符串的长度用length。注意是str.length。而不是length(str).
var str2 = '你好啊啊啊'
console.log(str2.length);
字符串的拼接,字符串+任何类型 = 拼接后的新字符串。
将变量带入到字符串中,需要单独将变量拿出来。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var age = 18
console.log('我今年'+age+'岁');
</script>
</head>
<body>
</body>
</html>
bool类型
在进行加法运算的时候,true当作1来计算;false当作0来计算。
undefined
如果一个变量只声明没有赋值,则是一个undefined未定义类型。
undefined加上任何一个数字都是NaN。
null
null是空值。
获取变量的数据类型
可以使用typeof来获取变量的数据类型。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var flag1 = true
var flag2 = false
console.log(typeof flag1);
console.log(typeof (flag2));
</script>
</head>
<body>
</body>
</html>
用户通过prompt输入的值均是字符串类型。 如果要尽行数值运算,则进行数值转换。(与python像类型)
数据类型转换
将其他类型转换成字符串类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 将其他类型转换成字符串类型
var num = 10
console.log(num.toString());
console.log(String(num));
console.log(num+'岁');
</script>
</head>
<body>
</body>
</html>
着重掌握加号拼接字符串的方法。num+‘ ’
将其他类型转换成数字类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 将其他类型转换成字符串类型
var num = 10
console.log(num.toString());
console.log(String(num));
console.log(num+'岁');
// 将其他类型转化为数字类型
console.log(parseInt('1234'));
console.log(parseFloat('123.456'));
</script>
</head>
<body>
</body>
</html>
蓝色的为数值型,黑色的为字符型。如果对于小数用parseInt,则会取整。并且加上单位,则也可以去掉。
注意这两个函数的书写。
将其他类型转化为Boolean类型
代表空否定的值会被转化为false。例如0、NaN、null、undefined
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
// 将其他类型转换成字符串类型
var num = 10
console.log(num.toString());
console.log(String(num));
console.log(num+'岁');
// 将其他类型转化为数字类型
console.log(parseInt('1234'));
console.log(parseFloat('123.456'));
// 将其他类型转化为Boolean类型
console.log(Boolean('true'));
console.log(Boolean(NaN));
console.log(Boolean('NaN'));
</script>
</head>
<body>
</body>
</html>