数据类型
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 数据类型指的是字面量的类型
* 在js中一共有六种数据类型
* String 字符串
* Number 数值
* Boolean 布尔值
* Null 空值
* Undefind 未定义
* Object 对象
*
* 其中String,Number,Boolean,Null,Undefind属于基本数据类型,Object属于引用数据类型
*
*
* String字符串
* - 在js中的字符串需要使用引号.单引号,双引号都行
*
*/
/*
* var str = "hello";
console.log(str);
*/
var str = '"我说:"今天天气下雪!""';
console.log(str)
/*
* 在字符串中我们可以使用\作为转义字符,
* 当表示一些特殊符号时可以使用\进行转义
*
* \" 表示一个 "
* \' 表示一个 '
* \n 表示换行
* \t 制表符
* \\ 表示一个\
*/
var str2 = "我说:\"今天天气下雪!\""
console.log(str2)
</script>
</head>
<body>
</body>
</html>
Number
NaN 是一个特殊数字,表示 Not A Number
使用typeof 检查一个 NaN也会返回number
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 在js中所有的数值都是Number类型,
包括整数或浮点数
js中可以表示的数字的最大值.
Number.MAX_VALUE
1.7976931348623157e+308
Number.MIN_VALUE 大于0的最小数
5e-324
超过最大值 就会返回一个Infinity
Infinity 表示正无穷
-Infinity 表示负无穷
使用typeof 检查Infinity会返回Number类型
NaN 是一个特殊数字,表示 Not A Number
使用typeof 检查一个 NaN也会返回number
*/
//数字123
var a = 123;
//字符串123
var b = "123";
/*
* 可以使用一个运算符 typeof 来检验一个变量的类型
语法:typeof 变量名
*/
//console.log(typeof b)
//js中可以表示的数字的最大值. 超过最大值 就会返回一个Infinity
console.log(Number.MAX_VALUE)
//1.7976931348623157e+308
a = Number.MIN_VALUE
console.log(a)//5e-324
var c = Infinity;
console.log(typeof c)
//number 类型
var d = "abc" * "abc";
console.log(d)//NaN
console.log(typeof d)//number
</script>
</head>
<body>
</body>
</html>
Boolean
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* Boolean 布尔值
*/
var bool = true;
console.log(typeof bool);
</script>
</head>
<body>
</body>
</html>
强制类型转换成String
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 强制类型转换
* 类型转换主要指,将其他数据类型,转换为String,NumberBoolean
*
* 将其他的数据类型转换成String
* 方式一:
* 调用被转换数据类型的toString()方法
* 该方法不会影响原变量,他会将转换的结果返回
* 注意:null和undefind这两个值没有toString方法
* 如果调用他们的方法,会报错
*
* 方式二:
* 调用String()函数,并将被转换的数据作为参数传递给函数
* 使用String()函数做强制类型转换时,
* 对于number和Boolean实际上就是调用的toString()方法
* 但对于null和undefind,就不会调用toString()方法,他会直接转换。
*/
var a = 123;
a = null
//a = a.toString() 报错
//调用a的toString()方法
//调用xxx的yyy方法,就是xxx.yyy()
/*a.toString()
console.log(typeof a) //"number"
console.log(a) */
a = undefined
//a = a.toString() 报错
a = 123;
//调用String()函数,来将a转换成字符串
String(a)
console.log(typeof a) //string
console.log(a)
</script>
</head>
<body>
</body>
</html>
强制转换成Number
- parseInt() 把一个字符转转换成一个整数。
- parseFloat() 把一个字符串转换成一个浮点数。
- 如果对于非String使用parseInt()或parseFloat() 它会先将其转换成String然后在操作
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 将其他类型转换成Number
* 转换方式一:
* 使用Number()函数
* 字符串转数字:
* 1. 如果是纯数字的字符串,则直接将其转换为数字
* 2. 如果字符串中有非数字的内容,则转换为NaN
* 3. 如果字符转是一个空串或全是空格字符串,则转换成0
* 布尔转数字:
* true 转成 1
* false 转成 0
*
* Null转数字:就是0
*
* undefined转数字 :就是NaN
*
*
* 转换方式二:
* 这种方式专门用于字符串
* parseInt() 把一个字符转转换成一个整数。
* parseFloat() 把一个字符串转换成一个浮点数。
*
*/
var a = 123;
//调用Number()函数将a转成Number类型
a = Number(a);
//空字符串或空格字符串
a = " ";
a = Number(a);
//如果是Boolean
a = true;
a = Number(a);
//Null转数字
a = null;
a = Number(a);
//undefind转数字
a = undefined;
a = Number(a)
//方式二
a = "123px"; //123
a = "12a3px"; //12
a = "12.3px"; //12
a = parseInt(a);
a = "12.3px";
a = parseFloat(a); //12.3
/*
* 调用parseInt() 函数可以将a转换成Number
*
* parseInt() 函数可以将一个字符串中的有效的整数内容取出来,然后转换成Number
*/
/*
* 如果对于非String使用parseInt()或parseFloat()
* 它会先将其转换成String然后在操作
*/
a = true;
a = parseInt(a);
a.toString()
console.log(typeof a)
console.log(a)
</script>
</head>
<body>
</body>
</html>
其他进制的数字
* 在js中,如果需要表示16进制的数字,则需要以0x开头
* 如果需要表示8进制的数字,则需要以0开头
* 如果需要表示2进制的数字,则需要以0b开头
* 但是不是所有的浏览器都支持
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 在js中,如果需要表示16进制的数字,则需要以0x开头
* 如果需要表示8进制的数字,则需要以0开头
* 如果需要表示2进制的数字,则需要以0b开头
* 但是不是所有的浏览器都支持
*/
//十六进制
var a = 0X10;
a = 0xff;
a = 0xcafa;
//八进制
var b = 010;
//二进制
//b = 0b10;
//向“070” 这种的字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
//可以在parseInt()中传递第二个参数,来指定数字的进制
a = parseInt(a,10);
console.log(a);
</script>
</head>
<body>
</body>
</html>
强制转换成Boolean
- 将其他的数据类型转换成Boolean
* 使用Boolean()函数
* 数字转布尔:
* 除了0和NaN,其余都是true
* 字符串转布尔:
* 除了空串,其余都是true
* null和undefind都会转成false
*
* 对象也会转换成true
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script type="text/javascript">
/*
* 将其他的数据类型转换成Boolean
* 使用Boolean()函数
* 数字转布尔:
* 除了0和NaN,其余都是true
* 字符串转布尔:
* 除了空串,其余都是true
* null和undefind都会转成false
*
* 对象也会转换成true
*/
var a = 123;//true
a = -123;//true
a = 0; //false
a = Infinity; //true
a = NaN; //false
//调用Boolean()函数将a转换成Boolean
a = Boolean(a);
a = "hello"; //true
a = " "; //true
a = ""; //false
a= null; //false
a = undefined; //false
a = Boolean(a);
console.log(typeof a);
console.log(a);
</script>
</head>
<body>
</body>
</html>