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,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,267评论 0 4
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 2,092评论 1 10
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,814评论 2 17
  • 嫦娥今夜为谁羞,欲把轻纱遮绣楼。 怎奈冰轮留玉影,引得天下共昂头。
    西郊散人阅读 480评论 0 0