JavaScript typeof运算符和数据类型
// js有6种数据类型:Undefined、Null、Boolean、String、Number、Object //(01)typeof console.log(typeof undefined); //undefined console.log(typeof null); //object :特殊1 console.log(typeof true); //boolean console.log(typeof ''); //string console.log(typeof 0); //number console.log(typeof {}); //object console.log(typeof function () { }); //function :特殊2 //(02)Undefined 用于没有初始化的变量赋值undefined //(03)Null undefined派生于null,用于表示一个空引用(指针),undefined == null =>true //(04)Boolean 值为 true和false ,JavaScript区分大小写,所以True等不是Boolean的值 //类型转换 //Boolean() ,将任何类型转换为布尔类型 var hello = Boolean("hello"); //调用方法(不是构造函数)显示类型转换 console.log(hello); //true if ('hello') { //隐式类型转换 console.log('隐式类型转换成功!'); } //(05)Number //声明 var num = 10; //10进制 var num = 077; //8进制 var num = 0xa; //16进制 ,0=>零 console.log(num); //10 //浮点类型,占用内存比整数类型打2倍 var box = 12.0; console.log(box); //自动转换为:12 //e表示法(科学计数法) var box = 1.23e3; console.log(box); // 小数点向后移动n位:1230 var box = 1.23e-3; console.log(box); //向前移动n位:0.00123; // 浮点类型精确度为17位,运算的话,有时会不精准 console.log(0.1 + 0.2); //0.30000000000000004 //NaN ,not a number var box = 0 / 0; console.log(box); //0不能作除数:NaN console.log(box + 1); //任何与NaN运算的结果都是NaN :NaN console.log(NaN + 1); //任何与NaN运算的结果都是NaN :NaN console.log(isNaN(box)); //true console.log(isNaN({})); //隐式调用对象的toString方法 :true //类型转换 //Number(),将任何类型转化为数字 console.log(Number(box)); //NaN console.log(Number(true)); //1 //parseInt() console.log(parseInt('0xa'));//10 console.log(parseInt('a', 16));//10 console.log(parseInt('70', 8));//56 //parsenFloat() 同上 //(06)String :字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改 //变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的 //字符串填充该变量 //toString() var box = 10; console.log(box.toString(2));//可以进制转换:1010 //类型转换 //String(),将任何类型转换为字符串 //(07)Object : //类型转换 //Object(),将任何类型转换为对象; //最后总结: 类型转换貌似就是调用的构造函数来创建对应类型的对象,网上说的和构造函数有区别的说法应该是不对的!
有些事现在不做,一辈子都不会做了