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

京公网安备 11010502036488号