相关疑难解决方法(0)

816
推荐指数
8
解决办法
77万
查看次数

JavaScript的"新"关键字被视为有害吗?

在另一个问题中,用户指出该new关键字使用起来很危险,并提出了一种不使用的对象创建解决方案new.我不相信这是真的,主要是因为我使用了Prototype,Scriptaculous和其他优秀的JavaScript库,并且每个人都使用了new关键字.

尽管如此,昨天我在YUI剧院观看道格拉斯·克罗克福德的演讲,他说的完全一样,他new在代码中不再使用关键字(Crockford on JavaScript - Act III:Function the Ultimate - 50:23分钟).

使用new关键字"不好" 吗?使用它有哪些优缺点?

javascript

566
推荐指数
12
解决办法
11万
查看次数

为什么arr = []比arr = new Array更快?

我运行此代码并得到以下结果.我很想知道为什么[]更快?

console.time('using[]')
for(var i=0; i<200000; i++){var arr = []};
console.timeEnd('using[]')

console.time('using new')
for(var i=0; i<200000; i++){var arr = new Array};
console.timeEnd('using new')
Run Code Online (Sandbox Code Playgroud)
  • 使用[]:299ms
  • 使用new:363ms

感谢Raynos,这里是此代码的基准,以及一些更可行的方法来定义变量.

在此输入图像描述

javascript performance

144
推荐指数
2
解决办法
5万
查看次数

var x = new Array()有什么问题;

在JSLint中,它警告说

var x = new Array();
Run Code Online (Sandbox Code Playgroud)

(这不是一个真正的变量名称)应该是

var result = [];
Run Code Online (Sandbox Code Playgroud)

第一种语法有什么问题?这个建议背后的原因是什么?

javascript jslint

38
推荐指数
4
解决办法
2万
查看次数

"对var os_map = {}使用数组文字符号[]"

我不明白为什么当我使用JavaScript文件运行JSLint时收到错误消息.

os_map = {}; Problem at line 28 character 36: Use the array literal notation [].如果我在JSLint中运行此代码,我会收到消息var .JSLint的选项如下.

/*jslint onevar: true, browser: true, undef: true, nomen: true, eqeqeq: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */
Run Code Online (Sandbox Code Playgroud)

声明对象(,它{})应该没问题,但JSLint建议使用空数组(,这是[])

:我找到了答案.我错了.这没什么不对var os_map = {}.代码显示在错误消息中,因为我没有使用"require strict";.我收到错误消息错误.谢谢回答我的问题.

javascript jslint

11
推荐指数
1
解决办法
1万
查看次数

5
推荐指数
2
解决办法
6427
查看次数

标签 统计

javascript ×6

arrays ×2

jslint ×2

declaration ×1

performance ×1