学习笔记6
typeof操作符
var a = undefined;
console.log(typeof a);//undefined
console.log(typeof b);//undefined
//未声明的变量只能执行一个操作,就是用typeof检测其数据类型
alert(b);//报错:Uncaught ReferenceError: b is not defined
console.log(undefined == null);//true,相等操作符(==)规定undefined和null是相等的
console.log(undefined === null);//false,类型不同
var声明未初始化,变量的值就是undefined。
对未声明的变量执行typeof操作符会返回undefined值
Number类型
浮点数
该数值值中必须包含一个小数点。
console.log(1.0);//1, 如果数值本身是一个‘整数’,这个数值会被以整数值保存。
console.log(1.0e2);//100;
console.log(0.1);//0.1
Infinity值
console.log(Number.MAX_VALUE);//1.7976931348623157e+308
console.log(Number.MIN_VALUE);//5e-324
console.log(isFinite(Number.MAX_VALUE * 2));//用isFinite()确定一个数字是不是有穷的
超出数值范围的值会被自动转换成Infinity值。
如果是负值,会被转换成-Infinity,如果是正值,会被转换成Infinity。
NaN
Not a Number
任何涉及NaN的操作都会返回NaN。
NaN与任何值都不相等,包括NaN本身。
isNaN()用来判断一个值是否是 NaN
Number()
console.log(Number(''));// 0
console.log(Number('0x22'));// 34,转换为十进制
console.log(Number('22e5'));//2200000
console.log(Number('xixi'));// NaN
console.log(Number(true));//1
console.log(Number(false));//0
console.log(Number(null));//0
console.log(Number(undefined));//NaN
//如果是对象,先调用对象的valueOf()方法,如果返回NaN,则调用toString()方法
parseInt()
//如果第一个字符不是数字字符或负号,parseInt()返回NaN
console.log(parseInt(''));//NaN
//如果第一个字符是数字字符或负号,parseInt()会解析第二个字符,直到解析完后续字符或遇到一个非数字字符
console.log(parseInt('225xixi'));//225
console.log(parseInt('22.5'));//22
//
console.log(parseInt('0x22.5'));//34
console.log(parseInt('000111'));//111
//parseInt()转换字符串不支持科学计数法
console.log(parseInt(22e5));//2200000
console.log(parseInt('22e5'));//22
//在使用parseInt()解析8进制字符量常量时ECMAScript5,不具备解析解析8进制的能力
console.log(parseInt('070'));//70
//指定基数
console.log(parseInt('070', 8));//56
parseFloat()
console.log(parseFloat('22e5'));//2200000
console.log(parseFloat('22.5.5'));//22.5
console.log(parseFloat('000111.0'));//111
//只能解析10进制,无法指定基数
console.log(parseFloat('0x22'));//0
String()
//Number、Boolean、Object、String都有toString()方法,该方法返回相应值的字符串表现
var n = 10;
console.log(n.toString(2));//1010, Number可以传入参数,指定基数
//在不知道要转换的值是不是null或undefined的情况下,使用转型函数String()
//遵循以下规则
//如果值有toSting()方法,,则调用该方法(没有参数)并返回相应结果
//如果是null,则返回"null"
//如果是undefined,则返回"undefined"
var n2;
console.log(String(n2));
一元操作符
递增,递减
var s1 = "12w";
var s2 = "12";
var s3 = true;
//都变成数值常量
console.log(++s1);//NaN, 应用于一个不包含有效数字字符串时, 先转换为NaN, 再进行计算
console.log(++s2);//13, 应用于一个包含有效数字字符串时, 先转换为数字值, 再进行计算
console.log(++s3);//2, 应用于一个Boolean时,先转换为数字值(false 0, true 1),在进行计算
一元加和一元减操作符
//一元加对数字无任何影响,该操作符会像Number()转型函数一样对这个值进行转换
//一元减操作符主要用于表示负数,遵循于一元加一样的规则
相等操作符
1 相等操作符(==)
先转换再比较
如果有一个操作数是Boolean, false转换0,true转换1,再进行比较
如果有一个操作数是字符串,另一个是数值,先转换再比较
如果一个操作数是对象,另一个不是,则调用对象的valueOf()方法,用得到的基本类型值比较
null和undefined是相等的
要比较相等性前,不能将null和unfined转换成其他任何值
NaN与任何值都不相等,包括NaN本身。
如果两个操作数都是对象,则比较它们是不是同一个对象。如果两个操作数都指向同一个对象,则相等操作符返回true,否则返回false
2 全等操作符(===)
只在两个操作数未经转换就相等的情况下返回true