原始类型:保存在本地的数据类型,主要有boolean,number,string,undefined,null
number类型:存储整数和浮点数的类型
整数:
var num=100;
console.log(num);//输出结果:100,100为整数
**
浮点数:
var num1=10.1;
console.log(num1);//输出结果:10.1
var num2=.1;
console.log(num2);//输出结果:0.1,虽然赋值是.1,但是js引擎会自动在前面补上0,变成0.1
var num3=10.;
console.log(num3);//输出结果:10,js会自动去掉10.后面的那个.变成10
/*浮点数在计算时可能会出现误差*/
var x=0.3;
var y=0.2;
console.log(x-y);//输出结果:0.09999999999999998
NaN:一个不是数字的数字,它跟任何数作比较都不相等,跟自己作比较也不相等
console.log(NaN==NaN);//输出结果:false,不等于
console.log(NaN==20);//输出结果:false,同样不等于
无穷大:表示一个数字除不尽,无穷大不等于另一个无穷大,无穷大减去另一个无穷大不等于零
var num=80/0;
console.log(num);//输出结果:Infinity,Infinity就是无穷大的意思,因为0不能作为被除数
string类型:在js中,用单引号或者双引号包裹的内容都成为字符串
语法结构:
var str="hello";
console.log(str);//输出结果:hello
var str1='good';
console.log(str1);//输出结果:good
转义字符:
console.log('xxx\nyyy');//这里的\n代表换行符
boolean类型:只有两个值:true或者false
console.log(8==9);//输出结果:fasle
console.log(9==9);//输出结果:true
undefined:js中指的是未定的的值,表示为空,如果一个变量的值为undefined,那么是存在在内存中的,只是没有值,得到undefined的情况是只声明不初始化值或者定义变量时,初始化值为undefined
var num;
console.log(num);//输出结果:undefined,因为没有给变量名赋值,所以得到undefined
var num1=undefined;
console.log(num1);//输出结果:undefined,直接给变量名赋值undefined,也可以得到undefined
null:用于给指定的变量进行内存释放,通常这个是通过程序员自己设置的,通常用来释放一个变量的占据内存空间
var conten=null;//语法结构
引用类型:数据不保存在本地
Number类型:通过Number类型创建一个数字的值的变量
var num=new Number(100);//创建一个构造函数
console.log(num);//输出结果:[Number: 100];
String类型:通过String类型创建一个字符串的值得变量
var str=new String("hello");//创建一个构造函数
console.log(str);//输出结果:[String: "hello"]
typeof运算符:主要是用来判断原始类型的类型名称
var num=100;
var bol=true;
var str='hello';
console.log(typeof num);//输出结果:number
console.log(typeof bol);//输出结果:boolean
console.log(typeof str);//输出结果:string
instanceof运算符:主要是用来判断引用类型的类型名称
var str=new String("hello");
var num=new Nember(100);
var bol=new Boolean(true);
console.log(str instanceof String);//输出结果:true
console.log(num instanceof String);//输出结果:false
console.log(bol instanceof Boolean);//输出结果:true
typeof运算符和instanceof运算符的比较区别:
typeof运算符
- 判断原始类型
- 语法结构不同与instanceof运算符的语法结构不同
- 得到结果不同与instanceof运算符的结果不同
instanceof运算符
- 判断引用类型
- 语法结构不同与typeof运算符的语法结构不同
- 得到结果不同与typeof运算符的结果不同