5种基本类型:unll,undefined,boolean,number,string
1种复杂类型:object
5种引用类型:Array,Object,Function,Date,RegExp
3种基本包装类型:Boolean,Number,String
2种单体内置对象:Global,Math
undefined:没有定义的变量,var声明没有初始化的变量
typeof 可查看变量类型,一个变量应只存一个类型的数据。
var a = 12;
// console.info(typeof a); number
a = 'dwefeyui';
// console.info(typeof a); string
a = true;
// console.info(typeof a); boolean
a = function(){
console.info('frgctgy');
};
// console.info(typeof a) function
a = document;
// console.info(typeof a); object
var b;
// console.info(typeof b); undefined
// 1.真的未定义
// 2.虽然定义但是没有给东西
显式类型转换(强制类型转换)
parseInt() 可将字符串转换为数字(整数),parseFloat()可将字符串转换为数字(小数);
var a = 'abc', b = '20.5632';
// console.info(parseInt(a)); NaN
// console.info(parseInt(b)); 20
var a = '3.5';
console.info(parseFloat(a)); //3.5
isNaN() 判断该元素是否为NaN,NaN表示(Not a Numer),两个NaN之间不相等;
隐式类型转换
双等 == 先转换类型,再进行比较;(值相等,等式成立)
三等=== 不转换类型,直接比较;(值和类型必须相等,等式成立)
var a = 5;
var b = '5';
// console.info(a==b); true
// console.info(a===b); //false
减法也可做隐式类型转换,但加法不行。
var a = '12';
var b = '5';
// console.info(a+b); //125
// console.info(a-b); //7
变量作用域
局部变量:只能在定义他的函数里面使用;
全局变量:在任何地方都能用;