ECMAScript的变量是松散类型的,所谓松散类型就是能够用来保存任何类型的数据。bash
因为ECMAScript的变量是松散类型,能够用typeof来检测给定变量的数据类型。typeof是一个操做符而不是函数。函数
null值表示一个空指针,undefined值是派生自null值的spa
console.log(null == undefined ) \\true
prototype
console.log(null === undefined ) \\false
指针
可用Boolean()
来转换对应的Boolean值code
在八进制中,若是字面量的数值超出了范围,那么前面0会被忽略,后面的数值看成十进制解析。对象
var Num = 019 \\ 19
ip
保存浮点数值须要的内存空间是保存整数值的两倍内存
Infinity 表示无穷,+Infinity正无穷,-Infinity负无穷字符串
若是某次计算返回了Infinity,那么该值没法继续参与下一次的计算。 用isFinite()
能够判断一个数值是否是无穷
0除以0都等于NaN
console.log(0/0) // NaN
console.log(1/0) // Infinity
console.log(-1/0) // -Infinity
复制代码
NaN == NaN //false
isNaN()
能够判断是否‘不是数值’,它会把传入的参数尝试转换成数值,能够被转换,返回false,不能被转换,返回true
console.log(isNaN(NaN)) // true
console.log(isNaN(10)) // false
console.log(isNaN("10")) // false
console.log(isNaN("blue")) // true
console.log(isNaN(true)) // false,能够被转换成数值1
复制代码
转换规则:
valueOf()
方法,而后按照前面的规则转换。若是转换的结果是NaN,则调用的对象的toString()
方法,再按照前面的规则转换因为Number()函数在转换字符串时复杂且不够合理,所以在处理 整数 的时候更经常使用parseInt()
console.log(parseInt()) // NaN
console.log(parseInt("1234blue")) //1234
console.log(parseInt("0xA")) //10,十六进制
console.log(parseInt("22.5")) //22,小数点不是有效的数字字符
console.log(parseInt("070")) //56,八进制
复制代码
由于在ECMAScript3 JavaScript 引擎中,“070”被当成八进制字面量,而在ECMAScript5 JavaScript 引擎中,parseInt再也不有解析八进制的能力,“070”被转换成70。所以,parseInt有第二个参数,使用的基数
console.log(parseInt("AF")) //NaN
console.log(parseInt("AF",16)) //175
console.log(parseInt("070",8)) //56
console.log(parseInt("070")) //70
复制代码
console.log(parseFloat("1234blue")) //1234
console.log(parseFloat("0xA")) // 0
console.log(parseFloat("22.5")) // 22.5
console.log(parseFloat("22.34.5")) //22.34
console.log(parseFloat("0980.5")) //980.5
console.log(parseFloat("3.125e7")) //31250000
复制代码
toString()
方法能够把一个值转换成一个字符串,null和undefined没有这个方法,里面能够传递参数,表示输出数值的基数(几进制)
在不知道要转换的值是否是null和undefined时,能够用转型函数String()
,可以将任何类型的值转换成字符串
Object每一个实例都有下列属性和方法
function object1() {}
const object3 = new object1();
console.log(object1.prototype.isPrototypeOf(object3));
// expected output: true
复制代码
var timestamp = (new Date()).valueOf() //返回时间戳