一、数据类型
数字、字符串、布尔型、对象;
undefind(未定义)null(空)不存在。
var numType = 10; // 数字型
var stringType = 'hello JavaScript'; // 字符型 单引号或者双引号
var boolenType = true; // 布尔型 true false
对象:包含了 数字、字符串、布尔型。
null:无值
undefind:
1、声明了变量,但是没有给它赋值。
2、访问了一个未声明的属性。
3、定义了函数的参数,但是没有传递值。
typeof运算符
补充
二、数据类型转换
1、数字和字符串的转化
var numType = 10;
var stringType = '4';
alert(numType * stringType);
返回值是40,stringType 可以优雅的解释成数字 4,并且不改变stringType的数据类型。返回值的数据类型也可以正确得到。
2、NaN
var numType = 10;
var stringType = 'hello JavaScript';
alert(numType * stringType);
返回值是 NaN, stringType是无法解释成数字型的。
3、+号运算符
如果是2个数字类型之间的是加法:
var a = 4;
var b = 4;
alert(a + b );
返回值是8
但是,如果 b是字符串,
var a = 4;
var b = '4';
alert(a + b );
返回值则是 ‘44’,a会被解释成‘4’。返回值的数据类型也是字符型的。
加号运算符:数值类型之间是运算符,数值和字符串或者字符串之间是拼接。从左往右遍历+运算符。
4、转化成布尔型
null和undefined转换成false
数字0和NaN转换成false
字符串空''转换成false
其他所有值转换成true
5、显示数据类型转换
function test() {
var numberType = 10;
var stringType = '4';
var textType = 'JavaScript';
var booleanType = !!0; //数字 转 boolean
return (numberType + (stringType - 0) + " ") + textType + " " + (booleanType);
}
document.getElementById("demo").innerHTML = test();
result:
14 JavaScript false
以上!
个人觉得,javascript在数据类型定义及其转换,相较于c,java来说,实在是太简单了,太优雅了....