JS原生Api:slice/hasOwnProperty

1,编码相关:encodeURI()和encodeURIComponent()

escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值。比如"春节"的返回结果是%u6625%u8282,,escape()不对"+"编码

主要用于汉字编码,现在已经不提倡使用。

encodeURI():是Javascript中真正用来对URL编码的函数,编码整个url地址,但对特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。对应的解码函数是:decodeURI()。

encodeURIComponent(): 能编码"; / ? : @ & = + $ , #"这些特殊字符。对应的解码函数是decodeURIComponent()。

假如要把带&符号的网址作为URI的参数,则用encodeURIComponent()。

2,Array.prototype.slice(args):这个方法能将给定的args对象转换成数组,前提是args对象有length属性。如:

var a={length:2,0:'first',1:'second'};

Array.prototype.slice.call(a);

结果是:

var a={length:2,0:'first',1:'second'};如果把args的length属性删除,则无法正常转换,会转换成空数组。

function list(){

return Array.prototype.slice.call(arguments);}

var list1=list(1,2,3);// [1, 2, 3]

传给call(参数)里面的是要包含length属性的对象,而函数有个默认的参数就是arguments,有length属性。所以上面这中用法也可以,可以修改成:

function list(arga){

return Array.prototype.slice.call(arga);}

var list1=list({length:2,0:1,1:2});// [1, 2, 3]

这时候传进去的就要是一个对象。

类数组(Array-like)对象

slice()方法可以用来将一个类数组对象/集合转换成一个数组。只需将该方法绑定到这个对象上。比如,JavaScript中函数的参数就是个类数组对象。

functionlist(){returnArray.prototype.slice.call(arguments);}varlist1=list(1,2,3);// [1, 2, 3]

上面示例中Array.prototype.slice.call(arguments),也可以简单的使用[].slice.call(arguments)来代替。另外,还可以使用bind()方法。

3,

你可能感兴趣的:(JS原生Api:slice/hasOwnProperty)