写在前面:
本文只是简单介绍一下,不会深入探究。
js总共有6种数据类型:五个基本类型Number、String、Boolean、Null、Undefined和一个混合对象Object。
typeof操作符可以用来检测变量的数据类型(输出是一个关于数据类型的字符串),
返回如下6种字符串:number、string、boolean、undefined、object、function。
注意:Null和Undefined都是返回undefined。
1. Number:包含整数和浮点数。浮点数最高精度17位。
其实Number类型都是以浮点数保存数值,只是在浮点数是整数时会自动转换成整数。
例如:
var num = 1.00;
console.log(num);//1,自动转换成整数。
另外,和其他编程语言一样,浮点数计算会有一定的误差。
比如:
var num1 = 0.1,num2 = 0.2;
console.log(num1+num2);//0.3000000000000004.
附上一点NaN的注意点:NaN是非数字类型。它的特点是:①,任何涉及NaN的操作都返回NaN。②,NaN不等于它本身。
2.String:字符串的值是不可变的。当我们在改变字符串的值时,其实是先销毁原本的字符串,再新建了一个同名字符串。
3.Boolean:只有true和false两个值。
4.Null:null被看做空对象指针,表示对象的“无”。
5.Undefined:表示没有声明的变量或声明了但是没有初始化。表示值的“无”,注意和null的区别。
6.Object:object比较复杂,因为“万物皆对象”。这里就介绍一个方法来检测对象。
typeof在检测基本数据类型时很不错。但是在检测对象类型时就无能为力了(只会返回Object)。此时,我们便大多会用instanceof操作符。
instanceof运算符适用于自定义对象和原生JavaScript对象,它基于原型链进行类型检测。
比如:
[] instanceof Array;//返回true。
function A(){}
function B(){}
A.prototype = new B();
var a = new A();
alert(a instanceof A);//true
alert(a instanceof B);//true
instanceof工作的大概原理是:它会判断左操作数对象的原型链上是否有右操作数这个构造函数。
本文只是简单介绍一下,不会深入探究。
js总共有6种数据类型:五个基本类型Number、String、Boolean、Null、Undefined和一个混合对象Object。
typeof操作符可以用来检测变量的数据类型(输出是一个关于数据类型的字符串),
返回如下6种字符串:number、string、boolean、undefined、object、function。
注意:Null和Undefined都是返回undefined。
1. Number:包含整数和浮点数。浮点数最高精度17位。
其实Number类型都是以浮点数保存数值,只是在浮点数是整数时会自动转换成整数。
例如:
var num = 1.00;
console.log(num);//1,自动转换成整数。
另外,和其他编程语言一样,浮点数计算会有一定的误差。
比如:
var num1 = 0.1,num2 = 0.2;
console.log(num1+num2);//0.3000000000000004.
附上一点NaN的注意点:NaN是非数字类型。它的特点是:①,任何涉及NaN的操作都返回NaN。②,NaN不等于它本身。
2.String:字符串的值是不可变的。当我们在改变字符串的值时,其实是先销毁原本的字符串,再新建了一个同名字符串。
3.Boolean:只有true和false两个值。
4.Null:null被看做空对象指针,表示对象的“无”。
5.Undefined:表示没有声明的变量或声明了但是没有初始化。表示值的“无”,注意和null的区别。
6.Object:object比较复杂,因为“万物皆对象”。这里就介绍一个方法来检测对象。
typeof在检测基本数据类型时很不错。但是在检测对象类型时就无能为力了(只会返回Object)。此时,我们便大多会用instanceof操作符。
instanceof运算符适用于自定义对象和原生JavaScript对象,它基于原型链进行类型检测。
比如:
[] instanceof Array;//返回true。
function A(){}
function B(){}
A.prototype = new B();
var a = new A();
alert(a instanceof A);//true
alert(a instanceof B);//true
instanceof工作的大概原理是:它会判断左操作数对象的原型链上是否有右操作数这个构造函数。