jjzjj

ecmascript-5

全部标签

javascript - javascript中的删除运算符

这个问题在这里已经有了答案:DeletingarrayelementsinJavaScript-deletevssplice(29个答案)关闭8年前。本书Javascript:权威指南在第6版的章节中陈述了以下内容4.13.3ThedeleteOperatorvara=[1,2,3];//Startwithanarraydeletea[2];//Deletethelastelementofthearraya.length//=>2:arrayonlyhastwoelementsnow但是当我在Firefox和chrome中尝试上面的代码片段时,数组的长度仍然是3。这是书中的错误信息还是

javascript - ECMAScript/Javascript 6 中的类是否需要 IIFE?

如果我有ClassCar{}我需要用我们的函数闭包来包装它吗?var会被提升到窗口吗?还是只是去上课?转译时呢?Traceur/babel会把它变成IIFE并让我们变成var吗?我需要:(function(){ClassCar(){}}());为了安全? 最佳答案 不需要像此处所示的类car的IIFE包装器,事实上,这将创建一个执行上下文并从页面的其余部分隐藏该类。所以你只需将其保留为(不是小写)classCar(){}Var仍然以与之前相同的方式被提升。它将被提升到执行上下文的顶部。如果代码当前位于窗口的上下文中,那么var将在此

javascript - 如何在不同的上下文中使用 es6 构造函数指令

是否可以通过更改“this”上下文(调用、应用或其他)在另一个实例上使用es6构造函数指令?这可以使用es5“类”。这是我的意思的一个小例子:functionES5(){this.foo='foo';}classES6{constructor(){this.bar='bar';}}vara=newES6();ES5.call(a);console.log(a.foo+a.bar);//foobarvarb=newES5();//Reflect.construct(ES6);??ES6.call(b);//TypeError:ClassconstructorES6cannotbeinvo

javascript - 无论如何让实例共享相同的功能但同时具有私有(private)变量?

我有这段代码:varHuman=function(name){this._name=name;};Human.prototype.Shout=function(){alert(this._name);};vartom=newHuman("tom");varjohn=newHuman("john");alert(tom.Shout===john.Shout);现在._name不是“私有(private)的”。我想将._name设为“私有(private)”,但同时我不希望为每个Human实例创建附加函数(换句话说,tom.Shout必须===tojohn.Shout),因为为创建附加函数

javascript - 覆盖 JavaScript 对象和函数的危险

JavaScript的本质允许其原生对象被完全重写。我想知道这样做是否真的有危险!这里有一些原生JavaScript对象的例子ObjectFunctionNumberStringBooleanMathRegExpArray假设我想对这些进行建模以遵循您可能在Java(和其他一些OOP语言)中找到的类似模式,以便Object定义一组基本功能,并且每个其他对象继承它(这将有由用户明确定义,与Java不同,Java中一切都自然地派生自对象)示例:Object=null;functionObject(){Object.prototype.equals=function(other){retur

javascript - Node.js 全局评估,抛出 ReferenceError

我正在尝试从Rhino书中学习JavaScript。我试图执行书中关于eval()的以下代码。我正在使用node.js(v0.10.29)来执行示例。vargeval=eval;//aliasingevaltogevalvarx='global';//twoglobalvariablesvary='global';functionf(){varx='local';//definealocalvariableeval('x+="changed";');//directevalsetsthelocalvariablereturnx;}functiong(){vary='local';//d

javascript - 在浏览器中使用模块(没有 WebPack)

我正在摸索ES6并遇到了模块(太好了!),在学习过程中,我试图看看我是否可以在浏览器中使用它们没有WebPack(我还没学过)。所以,我的JS目录中有以下文件/文件夹结构js-lib(forcompliedes6viaBabel)-mods(compiledmodules)-module.js(compiledviaBabel)-app.js(importsmodules,attachedtoindex.html)-src(for"raw"es6)-mods(es6modules)-module.js(es6module)-app.js(importsmodules)在js/src/m

javascript - 为什么 ES5 Object 方法没有添加到 Object.prototype 中?

ES5添加了一个number的methods到Object,这似乎打破了JavaScript的语义一致性。例如,在此扩展之前,JavaScriptAPI始终围绕操作对象本身;vararrayLength=[].length;varfirstPosInString="foo".indexOf("o");...新的Object方法是这样的;varobj={};Object.defineProperty(obj,{value:'a',writable:false});...当以下内容更加符合时:varobj={};obj.defineProperty({value:'a',writable:

javascript - 将 block 与对象初始值设定项区分开来

这与其说是一个实际问题,不如说是一个理论问题。它是关于解析一些由花括号分隔的代码。这里有两个例子objectinitializers:f({});({a:3})这里有两个例子blocks:;{}{a:3;}在实践中,如果前面的代码需要一个表达式,{...}似乎会分开一个block。但我从未在ECMAScript规范中看到过明确或明显的规则,我什至不确定它是否属实。某处是否有明确的非歧义引用?如果这条规则不是正确的规则? 最佳答案 Isthereadefinitivenonambiguousreferencesomewhere?它有点

javascript - 有没有 ECMAScript Validator

是否有像HTML和CSS那样的ECMAScript验证器?理想情况下,我需要一些自动化的方法来检查此标准的3.0版。 最佳答案 尝试JSLint.默认情况下,它实际上针对ECMAScript3的更严格子集进行验证,但您可以切换一些选项以使其更宽容。如果需要,您还可以启用ECMAScript5构造。 关于javascript-有没有ECMAScriptValidator,我们在StackOverflow上找到一个类似的问题: https://stackoverf