基本数据类型
string、 number、boolean、undefined、null
number
Number类型,即数值类型
包含:整数型、浮点型、NaN(not a number)和Infinity(正负无穷大)
boolean
boolean: 布尔类型,布尔类型只有两个值:true 和 false
true: 表示为真或条件成立
false: 表示为假或条件不成立
boolean类型常用于条件判断中,如果条件成立,则返回true;条件不成立,则返回false。
undefined
undefined类型只有一个值,就是undefined
表示只声明但未赋值的变量。
string
string类型就是字符串,在JavaScript语言中,使用单引号或双引号包裹的内容,我们都称之为字符串。
字符串的拼接可以使用“+”来做拼接。
null
null类型只有一个值,就是null,逻辑角度看,null值表示一个空对象指针。
<script>
var obj = null;
console.log(obj); // 输出:null
console.log(typeof obj); // 输出:object
</script>
null表示的是一个空对象的指针,所以使用typeof操作符检测null会返回object的原因。
其实是bug,但如果修改这个bug对原有项目的代码改动极大,所以就只能将错就错了。
引用数据类型
Object(Array, Function, Object, Date等)
数据类型转换
强制类型转换
JS中常见的3种强制类型转换
Number(value)——把给定的值转换成数字(可以是整数或浮点数)
Boolean(value)——把给定的值转换成Boolean型
String(value)——把给定的值转换成字符串
Number(value)
把给定的值转换成数字(可以是整数或浮点数)
console.log( typeof Number('12.12')); ==>number 12.22
Boolean(value)
把给定的值转换成Boolean型
当value其值为 0、-0、null、""、false、undefined 或 NaN 时,那么Boolean()转换成Boolean类型的值为 false。('0'字符串0结果是true,要注意把字符串和number区分开来)
<script>
console.log(Boolean(-0)); // 输出: false
console.log(Boolean(null)); // 输出: false
console.log(Boolean(undefined)); // 输出: false
console.log(Boolean("")); // 输出: false
console.log(Boolean(NaN)); // 输出: false
console.log(Boolean(false)); // 输出: false
</script>
String(value)
把给定的值转换成字符串
隐式类型转换
看懂下列
console.log(1 + 2 + "3"); // 输出:"33" 数据类型:string
其中number1+number2=number3再加字符串3输出字符串"33"
console.log(1 + "2" + 3); // 输出:"123" 数据类型:string
其中number1+字符串2=字符串"12" 字符串"12"+number3输出字符串"123"
var a = 11;
var b = 22;
console.log("a + b"); // 输出:"a + b" 数据类型:string
其中字符串"a + b" 输出字符串"a + b"
console.log(a + "b"); // 输出:"11b" 数据类型:string
其中变量a被赋值11,加上字符串"b",number+字符串 输出字符串"11b"
console.log(a + b); // 输出:33 数据类型:number
通过隐式转换把string转化成number,利用- 或者 +,,如
<script>
var str = "123.456";
console.log(str - 0); // 输出: 123.456
console.log(typeof(str - 0)); // 输出: number
// 也可以这样
console.log(+str); // 输出: 123.456
console.log(typeof(+str)); // 输出: number
</script>
通过隐式转换,把number转化为string,利用"",如
<script>
var num2 = 123.456;
console.log(num2 + ""); // 输出: ‘123.456’
console.log(typeof(num2 + "")); // 输出: string
</script>