JavaScipt中的基本数据类型和自动类型转换机制
Number:数字类型,包含整数,小数和NaN(not a number)
String:字符串和字符类型
(注意:js中单双引号都可以表示字符串,因为HTML中使用的是双引号,js这里推荐使用单引号)
Boolean: true和false
null: 空类型。对象的占位符
undefined: 未定义,如果一个变量没有初始化值,默认为undefined
定义变量的语法:
1.使用var定义变量 eg:var i="abc";
2.js是一门弱类型的语言:定义变量时,不需要规定其数据类型
3.typeof运算符:获取变量的数据类型
4.var关键字如果不书写,改变量为全局变量
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
var age=21;
var Age=21.3747;
var str="abc";
var str2='abc';
var flag=true;
var flag2=false;
var v;
var obj=null;
console.log(typeof age);
console.log(typeof Age);
console.log(typeof str);
console.log(typeof str2);
console.log(typeof flag);
console.log(typeof flag2);
console.log(typeof v);
console.log(typeof obj);
</script>
</head>
<body>
</body>
</html>
运行结果
当一个运算符想要的数据类型和他期望的不一致时,就会尝试进行数据类型的转换
字符串类型转换成数字,根据字面上的值来转换,如果字面上是个数字,就转换成数字;
如果字面上不是一个有效的数字,就转换成NaN
布尔类型转换成数字,true转换成1,false转换成0
String类型转换布尔类型,空串转换成false,非空串转换成true
数字类型转换布尔类型,0转换成false,非0转换成true
NaN和undefined转换成布尔类型,转换成false
对象转换布尔,对象不为空,转换成true,为null转换成false
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript">
var num="100";
var n=num-20;
console.log(n);
var str=+"a100";
console.log(str);
var n2=NaN*5;
console.log(n2);
var flag=true;
var f=flag+5+false;
console.log(f);
var str2="abc";
var f2=str2&&true;
console.log(f2);
if(10){
console.log("true");
}else{
console.log("false");
}
var v;
if(v){
console.log("true");
}else{
console.log("false");
}
var obj=new Object();
if(obj){
console.log("true");
}else{
console.log("false");
}
</script>
</head>
<body>
</body>
</html>
运行结果