(1)知识点
不同的数据类型,都有不同的用途
- (1.1)数据类型分类:【原始数据类型】和【引用数据类型】
- (1.2)javascript数据类型是弱类型
- (1.3)javascript数据类型转换
(2)细化
(2.1)数据类型分类
原始数据类型:string、number、boolean、undefined、null
- +运算中,如果参与运算的都是字符串,则加法变为字符串拼接
- 按指定小数位数四舍五入
n.toFixed(2)-->将计算结果按2位小数四舍五入
- typeof 运算符对于 null 值会返回 "Object"
- console.log(null == undefined) //true
引用数据类型:Object、Array、Date、Function、RegExp、基本包装类型(String、Number、Boolean)
参考:http://blog.csdn.net/liangshiquan1/article/details/49909825
(2.2)javascript数据类型是弱类型
- 声明变量时,不用考虑变量中将要存储的数据类型
- 赋值时,动态判断数据的类型;同一个变量,先后可保存不同类型的数据。
- 运算时,js会根据自己的需要,动态转换数据类型
(2.3)javascript数据类型转换
隐式类型转换
- 默认一切转数字类型,做算数计算
boolean类型:true-->1 false-->0 - +法中,只要有一个是字符串,都转为字符串,+变为字符串拼接;其他类型转字符串: 在字面量前后直接加引号
- 当无法转为数字时,或无法正常计算时,结果永远为NaN;加法计算中,碰上字符串,也会转为"NaN"
** 强制类型转换**
-
任意类型转为string
两种转换形式:
var str=x.toString(); //不能转为undefined,null
var str=String(x); //相当于隐式转换 -
任意类型转为number
var n=Number(x); //相当于隐式转换 -
string转为number
(1)to 整数:var n=parseInt(str);
如果传入的不是字符串,则先隐式转为String
原理:从头开始读取字符串中每个字符,跳过开头的空字符,只读取数字字符,只要碰到第一个不是数字的字符,就退出,不认识小数点。
Number(x) vs parseInt(str):
Number只认识纯数字组成的字符串,Number可转boolean类型
parseInt(str)认识包含非数字字符的字符串开头位置的数字,parseInt转不了boolean
(2)to 浮点数:var n=parseFloat(str);
用法和parseInt用法完全一样,只认第一个碰到的小数点。
- 任意类型转为boolean
var bool=Boolean(x);
" " 0 NaN undefined null -->false
其余都是true
PS:所有从页面获取到的都是字符串
(3)实践
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>javascript数据类型</title>
</head>
<body>
<script type="text/javascript">
init();
function init(){
console.log(undefined==null); //true
testTpyeof();
judge();
}
function testTpyeof(){
console.log(typeof null); //object
console.log(typeof 2); //number
console.log(typeof '2'); //string
}
//默认一切转数字类型,做算数计算
function judge(){
var a=2;
var b='2';
console.log(a==b); //true
console.log(a+b+true); //22ture
console.log(a+b+"true"); //22true
}
</script>
</body>
</html>
网友评论