1.null,undefined在流程控制中的使用
if (!null) {
console.log("ll"); //11
}
if (!undefined) {
console.log("22"); //22
}
2.null,undefined转换为数字时
null 转换为数字 为0
undefined 转换为数字 为NAN
console.log(Number(null)); // 0
console.log(10 + null); // 10
console.log(Number(undefined)); //NaN
console.log(10 + undefined); // NaN
总结:
null 表示空对象
1.作为参数时 表示该函数参数不是一个对象
2.作为原型链的终点
undefined 表示缺省值
1.变量声明 没有赋值 初始值为undefined
2.调用函数时,应该提供参数而没有提供参数,该参数为undefined
3.对象的属性没有赋值
4.函数没有返回值 默认返回值为undefined
3.数据类型和实例对象
var num = 10;
console.log(typeof(num)); //number number数据类型
console.log(num instanceof Number); //false 不是对象
var num = new Number(100);
console.log(num); //{ 100 }
console.log(typeof(num)); //object 对象
console.log(num instanceof Number); //true
通过valueof方法取到对象的值
console.log(num.valueOf()); //100
4.强制(显示)类型转换
主要指把其他类型转换为 String Number Boolean
数字,布尔值 转换为字符串:
var a = 100;
console.log(a.toString());
var isCool = true;
console.log(isCool.toString());
小数转换为整数:
var b = 11.66;
console.log(parseInt(b)); //11
其他类型转换为数字类型
var c = "12";
console.log(Number(c));
var d = true;
console.log(Number(d)); //1
var e = "123";
e = new Number(e); //object
console.log(e.valueOf()); //通过valueof取对象的值 123
其他类型转换为布尔类型
非0,非空字符串为true,空字符为false
var f = "";
console.log(Boolean(f)); //false
5.隐式转换
把数字转换为字符串——数字后面加字符串
var h = 123;
h+="";
console.log("h == ",h);
把字符串转换为数字——+-*/
var i = "123";
// i = i * 1;
// console.log("i == ",i);
i = +i;
console.log("h == ",i);
i=+i;
6.装箱:
把基本数据类型转换为 引用类型
默认情况下 num不可以调用toString方法
但解析时 把num做了装箱操作 转换成Number类型的对象
var str=123;
str=str.toString();
number的toFixed方法 也有装箱操作
var num=new Number(100.43545);
var x=num.toFixed(2);//保留两位小数
7.拆箱
把引用类型转换为基本数据类型
一般拆箱使用valueof方法
var num= new Number(100);
num=num.valueof();