window.onload = function(){
//五种简单数据类型 Undefined Null Boolean Number String 一种复杂数据类型 Object
// 1 typeof 操作符
// 2 Undefined var声明白变量单未对其进行初始化时,这个值就是undefined
// var age;
// alert(age); // undefined
// alert(message); // 报错
// alert(typeof age); // undefined
// alert(typeof message); // undefined
// // 结论 :typeof 检测 未定义的变量会返回undefined
// 3 Null 逻辑角度看,null值表示一个空对象指针,typeof检测会返回object
var car = null;
console.log(typeof car);
console.log(null == undefined); // null 和undefined相等性测试返回true 不过要区别两者的用法
// 4 Boolean
var apple = 'hello word';
var appleBoolean = Boolean(apple);
console.log(appleBoolean); // Boolean 转型函数 各种boolean值的转换对于if语句非常重要 需要熟记
// 5 Number
var intnum = 55; // 十进制
var octqlnull = 070; // 八进制
var hexNull = 0xA; // 十六进制
var floatnull = 1.1;
var floatnull2 = .1; // 这种浮点数有效,但不推荐。 由于浮点数需要的内存空间时整数的两倍,因此ECMAscript会不失时机的将其保存未整数
var floatnull3 = 1.0
// NaN 1.涉及NaN的操作都会返回NaN 2.NaN与任何值不相等,包括他本身 3.isNaN()函数返回boolean值
console.log(isNaN(NaN)); // true
// 数值转换 Number() parseInt() parseFloat(), 第一个适用于任何类型,后两者主要用于字符串转换为数值
/*
Number()规则:
1 如果是Bollean值,true为0;false为1;
2 如果为数字,只会简单的传入和返回
3 如果时null,返回0
4 如果是undefined,返回NaN
5 如果是字符串,遵循一下规则
字符串包含数字,忽略前导直接转换(包括前面带正好或者符号的情况)
字符串包含有效的浮点格式,转换为对应的浮点数,忽略前导
如果包含有效的十六进制格式,则会转换为相同大小的十进制数
字符串为空返回0
如果字符串包含上述以外的字符则将其转换为NaN
6 如果是对象,调用对象的valueof()方法,再依据钱买你规则;如果转换的结果是NaN,则调tostring()方法,再依据前面规则转换
Number函数不够合理,常用parseInt() parseFloat()
*/
// 6 String
/*
特点:字符串是不可变的,也就是说字符串一旦呗创建,它们的值不再改变,改变某个变量保存的字符串,首先要销毁原来的的字符串,再创建新的字符串
*/
// 装换为字符串的两个方法 toString() 和 String()
// null和undefined没有toString()方法 可以传递参数为基数,不传递的话为10
var number = 10;
console.log(number.toString(2));
// 不知要转换的值是不是null和undefined时,可以用String()函数,String遵循一下规则
/*
1 有tostring()方法,调用tostring方法
2 如果时null 返回 ” null“
3 如果时undefined 返回”undefined“
*/
}