undefined、null
null是一个表示“空”的对象,转为数值时为0;undefined是一个表示"此处无定义"的原始值,转为数值时为NaN
布尔值
除了下面六个值被转为false,其他值都视为true
undefined
null
false
0
NaN
""或''(空字符串)
数值
所有数字都是小数(64位浮点数)
1.以下两种情况,JavaScript 会自动将数值转为科学计数法表示,其他情况都采用字面形式直接表示
(1)小数点前的数字多于21位
(2)小数点后的零多于5个
2.默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制
NaN
NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。
1.NaN不是独立的数据类型,而是一个特殊数值,它的数据类型依然属于Number,使用typeof运算符可以看得很清楚
typeof NaN // 'number'
2.NaN不等于任何值,包括它本身
NaN === NaN
常用方法
1.parseInt
(1)字符串转为整数的时候,是一个个字符依次转换,如果遇到不能转为数字的字符,就不再进行下去,返回已经转好的部分
(2)可以接受第二个参数(2到36之间),表示被解析的值的进制,返回该值对应的十进制数。
2.parseFloat
3.isNaN
字符串
base64, 只支持ascii编码;非ascii需要转码后编码
1.btoa
2.atob
对象
1.删除属性 delete obj.p
2.属性是否存在(无法区分自身或者原型属性): p in obj
3.遍历属性(无法区分自身或者原型属性): for ... in obj
(1)遍历的是对象所有可遍历(enumerable)的属性
(2)遍历对象自身的属性以及继承的属性
Object
静态方法
keys()、getOwnPropertyNames()
(1)对象自身的(而不是继承的)所有属性名
(2)keys方法只返回可枚举的属性,getOwnPropertyNames方法还返回不可枚举的属性名
getOwnPropertyDescriptor():获取某个属性的描述对象。
defineProperty():通过描述对象,定义某个属性。
defineProperties():通过描述对象,定义多个属性。
preventExtensions():防止对象扩展。
isExtensible():判断对象是否可扩展。
seal():禁止对象配置。
isSealed():判断一个对象是否可配置。
freeze():冻结一个对象。
isFrozen():判断一个对象是否被冻结。
create():该方法可以指定原型对象和属性,返回一个新的对象。
getPrototypeOf():获取对象的Prototype对象。
实例方法
valueOf():返回当前对象对应的值,自动类型转换时会默认调用这个方法
toString():返回当前对象对应的字符串形式。
toLocaleString():返回当前对象对应的本地字符串形式。
hasOwnProperty():判断某个属性是否为当前对象自身的属性,还是继承自原型对象的属性。
isPrototypeOf():判断当前对象是否为另一个对象的原型。
propertyIsEnumerable():判断某个属性是否可枚举。
网友评论