Open evantianx opened 7 years ago
表示一个简单的值的属性
全局变量。初始值为Number.POSITIVE_INFINITY。在ES5规范中,Infinity是只读的。
Number.POSITIVE_INFINITY
在ES5中,NaN是一个不可配置,不可写的属性。而在ES3中是可以被更改的。
判断一个值是不是NaN 用Number.isNaN()函数,也可以通过NaN自身不等于自身这个特性来判断。
Number.isNaN()
在ES5中,window.undefined是一个不可写,不可配置的属性。而在ES3中可以被改写。
window.undefined
未初始化的变量值为undefined,未传入实参的形参变量值为undefined,函数默认返回undefined
判断一个值是不是undefined
严格相等判断符===
===
typeof
当某个值未被声明时,使用严格相等判断符判断会出错,而使用typeof不会出错
针对全局变量,直接检测window.x === undefined即可
window.x === undefined
不同于前三个属性,null是一个字面量
执行特定功能并返回结果的全局方法
eval()
顶级函数,与任何对象无关。
isFinite()
用来判断被传入的参数值是否为一个有限数值。(参数会首先被转化为一个数值)
isNaN()
判断一个数值是否为NaN
parseFloat()
将参数中指定字符串解析为一个浮点数字并返回 一直解析字符串直到遇见正负号,数字,小数点,e/E之外的值则停止,若第一个字符不能解析则返回NaN。
parseInt()
将给定字符串以指定基数解析为整数。 遇到第一个非数字值时返回NaN。
decodeURI()
解码由encodeURI或其他类似方法编码的统一资源标识符(URI) 参数为一个完整的编码过的URI
encodeURI
decodeURICoponent()
解码统一资源标识符(URI)的一个已编码组件
所谓的URI组件,就是URI的一部分,尤其是URI的参数部分。
encodeURI()
encodeURIComponent
URL Encoding 为什么要对url进行encode
Object.assign(target, ...sources) 把任意多个源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。该方法会调用源对象的[[Get]]和目标对象的[[Set]].
Object.assign(target, ...sources)
String类型和Symbol类型的属性都会被拷贝。
需要注意的几点:
Object.assign()
合并Objects
var o1 = {a: 1}; var o2 = {b: 2}; var o3 = {c: 3}; var obj = Object.assign(o1, o2, o3); console.log(obj);//{ a: 1, b: 2, c: 3 } console.log(o1); //{ a: 1, b: 2, c: 3 }
ES5 Polyfill
if(typeof Object.assign !== 'function') { Object.assign = function(target) { 'use strict'; if(target === null) { throw new TypeError('Cannot convert undefined or null to object') } target = Object(target); for(var index = 1; index < arguments.length; index++) { var source = arguments[index]; if(source !== null) { for(var key in source) { if(Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } } return target; } }
常量属性
表示一个简单的值的属性
Infinity
全局变量。初始值为
Number.POSITIVE_INFINITY
。在ES5规范中,Infinity是只读的。NaN
在ES5中,NaN是一个不可配置,不可写的属性。而在ES3中是可以被更改的。
判断一个值是不是NaN 用
Number.isNaN()
函数,也可以通过NaN自身不等于自身这个特性来判断。undefined
在ES5中,
window.undefined
是一个不可写,不可配置的属性。而在ES3中可以被改写。判断一个值是不是undefined
严格相等判断符
===
typeof
针对全局变量,直接检测
window.x === undefined
即可null
不同于前三个属性,null是一个字面量
方法属性
执行特定功能并返回结果的全局方法
eval()
顶级函数,与任何对象无关。
eval()
会将参数原封不动返回。isFinite()
用来判断被传入的参数值是否为一个有限数值。(参数会首先被转化为一个数值)
isNaN()
判断一个数值是否为NaN
parseFloat()
将参数中指定字符串解析为一个浮点数字并返回 一直解析字符串直到遇见正负号,数字,小数点,e/E之外的值则停止,若第一个字符不能解析则返回NaN。
parseInt()
将给定字符串以指定基数解析为整数。 遇到第一个非数字值时返回NaN。
decodeURI()
解码由
encodeURI
或其他类似方法编码的统一资源标识符(URI) 参数为一个完整的编码过的URIdecodeURICoponent()
解码统一资源标识符(URI)的一个已编码组件
encodeURI()
encodeURIComponent
基本对象
Object
Object.assign(target, ...sources)
把任意多个源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。该方法会调用源对象的[[Get]]和目标对象的[[Set]].String类型和Symbol类型的属性都会被拷贝。
需要注意的几点:
Object.assign()
拷贝的是在Source对象中属性的引用而不是对象本身。非深拷贝合并Objects
ES5 Polyfill