<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<!--
数据类型
a、数值型(Number),整数和小数,(按进制分为:二进制,八进制(020,表示十进制16),十进制,十六进制(0x21,表示十六进制33))
二进制转十进制:111010 =》0*2^0 +1*2^1+0*2^2+1*2^3+1*2^4+1*2^5=》 0+2+0+8+16+32=58
b、字符串型(String),用“双引号”或“单引号”括起来的0个或多个字符称为“字符串”,单引号和双引号称为"界定符";
"空字符串",没有任何字符的字符串。例:""
"数值字符串",全是数字的字符串。例:"12565"
"日期字符串",完全由英文日期时间构成的字符串。例:"2021-09-08"(日期字符串),"10:53:56"(时间字符串),"2021-09-08 10:54:01"(日期时间字符串)
注意:"2021年9月10日"在大部分情况下不算是日期字符串

转义字符:特殊字符需要作为字符串的时候,就转义来输出。
'(单引号),表示为:\' 例:console.log('I\'m a teacher.');
"(双引号),表示为:\"
\(斜杠),表示为:\\
换行,表示为:\n
回车,表示为:\r
制表符,表示为:\t
注意:回车换行在写入文件和控制台中使用,有效果;在html不会呈现在页面中,但会呈现在代码中。在页面中使用”</ br>“
c、布尔型(boolean,逻辑型),结果只有true(真)和false(假)的数据。值只有true与假
该 类型,主要用于流程控制(要么执行,要么不执行)
说明:非0为真,0为假。非0的意思为不是0。

d、undefined(未定义类型),在判断时,属于”false“
该类型主要针对对象而言,比如未定义属性,未定义方法等。
例:<a href="" id="" class="" data=""></a>
js代码:

<script>
window.onload=function(){
console.log(document.getElementById("test").id);//可以输出id的值为test,原因在于,id是系统预设的属性
console.log(document.getElementById("test").data);//不能输出data的值,原因在于,data不系统预设的属性,是用户自定义属性,输出值为"undefined"
}
</script>

e、null(空类型),未知类型,不确定的数据,不代表有也不代表无。
当一个变量没有保存有效的数据时或对象不存在时,都将返回null

【注意】0、“”、false、undefined、null区别
共同点
这五个值的共同点是,在if语句中做判断,都会执行false分支。
0、“”、false是有意义的数据
这三个值虽然在if语句中做判断时,表现为“假值”,可它们都是有意义数据。
undefined与null比较特殊
Undefined表示变量已定义,但没有赋值。Null表示没有对象被返回。虽然null的类型是object,但是null不具有任何对象的特性。

f、NaN(非数值),不是一种类型,是一个值
例:
console.log(parseInt("a125245")); //此时,因为第一个字符为非数值,所以结果”NaN“
console.log(parseInt("122a34")); //此时结果为”122“,因为在转时,第一个是字值,可以转换,直到遇到非数值时停止转换

g、数值字符串转换为整数或小数
parseInt(数值字符串); //将字符串转换为整数,如果第一个字符为非数值则结果为”NaN“
parseFloat(数值字符串); //将字符串转换为小数,如果第一个字符为非数值则结果为”NaN“,中间遇到第一个”.“时,转换为小数点,遇到第二个”.“或非数值时停止转换
例:
console.log(parseFloat("56.532.23")); //结果:56.532

h、typeof
功能:typeof()是一个一元运算符,以字符串形式返回变量的类型名称。
语法:typeof(变量|数据) 或 typeof 变量|数据
返回值有六种可能:“number”、“string”、“undefined”、“boolean”、“object”、“function”


i、转换(自动转换,强制转换)
自动转换(系统转换),系统将数据自动转换为匹配的类型。
例:
console.log(123+"234"); //结果为:123234,原因在于,+如果一边为字符串,另一边为数值时,系统会将数值自动转换为字符串,这种转换就是”自动转换“
【注意】自动转换容易出现不可知的错误,因此在实际的编程中少用。
强制转换,使用类型函数,强制将转换成对应类型
例:
obj=function(){} //定义对象
console.log(Boolean(0)); //false
console.log(Boolean(123));//true
console.log(Boolean(""));//false
console.log(Boolean("ab"));//true
console.log(Boolean(undefined));//false
console.log(Boolean(null));//false
console.log(Boolean(obj));//true

【重点】各类型强制转换的函数
String(数据),将数据转换为字符串
Number(数据),将数据转换为数值
Boolean(数据),将数据转换为逻辑值(布尔值)
-->
</body>
</html>