js中更短的 Array 类型转换

 更新时间:2011年10月30日 23:25:21   作者:  
代码永远都是那么好玩,而 Trick 不断。那天张克军在 twitter 上说还有比 [].slice.call() 更短的 Array 转换么
当时我在分享会,想试试,但身边没有电脑。今天打开 Firebug 的那一瞬间,突然记起这事。马上试了一下之前想的一个方案。可以!代码如下:
复制代码 代码如下:

function a(){
var arr = Array(arguments);
alert(arr instanceof Array);
}
a('b');

在看 Baidu Tangram 的时候,最常看到的是 String('a string'),不像其实地方的用法,是使用与一个空字符串字面量相加来强制类型转换。当时,就想到了如果 Array() 可以实现,那不是更爽?当然。而这是为什么呢?可以看一下这个打印出来的日志:
复制代码 代码如下:

console.log(Array,[],Array(),new Array())
// => [undefined] [] [] []

console.log(Array('sofish'), ['sofish'], new Array('sofish'))
// => ["sofish"] ["sofish"] ["sofish"]有趣吧。其实像 new Array() 可以省去 new,变成 Array(),都是创建一个空数组实例。

至于用那种方法好,我也遇到的情况并不多,不能说明什么状态。类型的转换我们需要常用到的,还需要去做更深层的研究。而像第一种做法,至少可是很多现在流行的框架使用的方法。一般情况下都用在于把 function 的 arguments 对象转换为数组来让我们可以对其做更多的事。如果你想使用的话,保险的用法还是用第一种。

相关文章

  • javascript中的异步调用机制

    javascript中的异步调用机制

    这篇文章主要介绍了javascript中的异步调用机制,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 设置checkbox为只读(readOnly)的两种方式

    设置checkbox为只读(readOnly)的两种方式

    设置checkbox为只读的方法有很多,在本文为大家详细介绍下两种比较实用的方法,感兴趣的朋友不要错过
    2013-10-10
  • 浅谈发布订阅模式与观察者模式

    浅谈发布订阅模式与观察者模式

    这篇文章主要介绍了浅谈发布订阅模式与观察者模式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-04-04
  • 使用Curl命令查看请求响应时间方法

    使用Curl命令查看请求响应时间方法

    curl命令查看请求响应时间的方法非常简单,今天小编抽空给大家介绍下使用Curl命令查看请求响应时间方法,感兴趣的朋友一起看看吧
    2016-11-11
  • TypeScript 中使用 getter 和 setter的方法

    TypeScript 中使用 getter 和 setter的方法

    这篇文章主要介绍了TypeScript 中如何使用 getter 和 setter, getter使我们能够将属性绑定到在访问属性时调用的函数,而 setter 将属性绑定到在尝试设置属性时调用的函数,需要的朋友可以参考下
    2023-04-04
  • layui数据表格 table.render 报错的解决方法

    layui数据表格 table.render 报错的解决方法

    今天小编就为大家分享一篇layui数据表格 table.render 报错的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • 小程序原生实现左滑抽屉菜单

    小程序原生实现左滑抽屉菜单

    在移动端,侧滑菜单是一个很常用的组件,本文就详细的介绍小程序原生实现左滑抽屉菜单,具有一定的参考价值,感兴趣的可以了解一下
    2021-07-07
  • Javascript & DHTML DOM基础和基本API

    Javascript & DHTML DOM基础和基本API

    DOM是文档对象模型(Document Object Model,是基于浏览器编程(在本教程中,可以说就是DHTML编程)的一套API接口,W3C出台的推荐标准,每个浏览器都有一些细微的差别,其中以Mozilla的浏览器最与标准接近。
    2008-07-07
  • 关于TypeScript应该尽量避免的语法总结

    关于TypeScript应该尽量避免的语法总结

    TypeScript是JavaScript的超集,具有类型系统,支持ES6语法,支持面向对象编程的概念,下面这篇文章主要给大家介绍了关于TypeScript应该尽量避免的语法,需要的朋友可以参考下
    2022-04-04
  • 老生常谈JS中的继承及实现代码

    老生常谈JS中的继承及实现代码

    这篇文章主要介绍了js中的继承及实现代码,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07

最新评论