首页 > TAG信息列表 > ecmascript-5

javascript-hasOwnProperty和ECMAScript 5严格模式

我很好奇:有人知道为什么ECMAScript5规范没有在严格模式下加强预定义对象原型的属性吗?例如,似乎没有有关hasOwnProperty定义方式的信息.我尝试重新定义它(并在FF4 beta中测试了代码),因此我得以解决.如果我没有做错任何事情,那么这意味着任何人仍然可以重新定义Object.prototype.has

javascript-参数传递到IIFE

有谁能解释和证明哪个例子“更正确”? A:将对象作为参数传递 (function($){ $.doStuff(); })(jQuery); B:在函数内检索对象 (function(){ var $= jQuery; $.doStuff(); })(); 我真的很喜欢B,因为它具有可读性. A和B之间的唯一技术区别是B必须再查找一个范围.我认为这

Javascript-Object.defineProperty的主要用例是什么?

我已经阅读了Javascript教科书中的数据属性,并想象仅将Object.defineProperty与访问器属性结合使用. 用于设置属性的Object.defineProperty的其他主要用例是什么:[[Enumerable]],[[Writable]],[[Configurable]]?是否在框架中使用?出于什么原因?它用于客户端应用程序吗?解决方法:通常,Obj

Javascript-为什么Array.isArray算法是ES5执行类型检查?

在SO和Google中发现的有关检查对象是否为数组的每个问题最有可能以该解决方案结束 function isArray(obj) { return Object.prototype.toString.call(obj) === '[object Array]' } 所有其他替代方案都有误报或不完全支持. 资料来源: http://perfectionkills.com/instanceof-co

javascript-使简单的搜索算法更优雅

// temp data var array = [1,2,function() { }, 3, function() { }]; var cb = function() { console.log("foo"); } var found = false; console.log(_.map(array, function(val) { if (_.isFunction(val) && !found) { return found = tru

javascript-更改对象原型以更改instanceof结果的好方法?

我想评论this old question,但似乎已被锁定. 这是我的用例: >使用构造函数Base创建对象obj. obj instanceof Base返回true. >我想更改obj的原型,使其看起来好像obj是从Derived构造的.那就是我想要 > obj可以访问Derived的方法> obj instanceof派生返回true 原因是obj将在层次结构中

JavaScript中的类型转换

例: function action(value) { // I want to operate on a string String(value)...; } 当我们将动态值传递给JavaScript的主要类型(字符串,数字,布尔值,对象等)时,我们可以(想要一个更好的词)将值转换为指定的类型. 是否可以在自定义类型中构建此功能,我将如何处理? 我

如何在JavaCC中实现JavaScript / ECMAScript“此处没有LineTerminator”规则?

我继续为ECMAScript 5.1的JavaCC grammar进行工作.实际上进展顺利,我想我现在已经涵盖了大多数表达式. 我现在有两个问题,它们都与自动分号插入有关(第7.9.1节).这就是其中之一. 该规范定义了以下产品: PostfixExpression : LeftHandSideExpression LeftHandSideExpression

javascript-当我们使用数组名称而不是传播运算符时有什么区别?

如果使用,有什么区别: var numbers = [1, 2, 3] var mainArray = (numbers.length > 1) ? numbers : ''; 代替这个: var numbers = [1, 2, 3] var mainArray = (numbers.length > 1) ? [...numbers] : ''; 解决方法:由于数据结构的分配指向内存中的同一空间,因此,如果您有两个引

javascript-在ECMAScript中,某些本地对象也是如何内置的?

我想需要一个本地对象和内置对象的定义才能回答这个问题. ECMAScript规范将这些定义为: 4.3.6 native object object in an ECMAScript implementation, independent of the host environment, that is present at the start of the execution of an ECMAScript program. NOTE

javascript-比较数组对象并显示差异

我有两个数组要比较,并检查其中一个数组中是否有已删除的项目.如果有区别,请告诉我(已删除的项目) 这是下面我想如何实现的代码: var completedList = [{id:1},{id:2},{id:3},{id:4},{id:7},{id:8}]; var invalidList = [{id:3},{id:4},{id:5},{id:6}]; // filter the it

javascript – 对array.includes和alternative的浏览器支持

我查了一下,发现这是关于在数组中的较大字符串中查找子字符串. Array.Prototype.includes if (t.title.includes(searchString)) 我是$.each的一部分,它遍历更大的对象数组(每个对象都有一些信息,包括字符串,日期等). searchString是用户在框中键入的内容.所有这些都是我在页面上

javascript – 获取错误提示在IE11中未定义

我正在将React代码转换为打字稿, tsconfig中的目标是es5. 在IE 11中运行我收到错误“Promise is undefined” 我知道我需要填充,但如何? 我没有使用巴别塔. 以下是我的Webpack.config var webpack = require("webpack"); var Promise = require('es6-promise').Promise; var paths

javascript – 在Eclipse中是否有办法改变ECMAScript合规性级别?

在Eclipse 4.5(Mars)中安装了JavaScript Development Tools (JSDT),ECMAScript的默认合规级别设置为ECMAScript 3,已经过时了.并且用于更改合规性级别的相关下拉列表已取消激活,因此无法更改该选项.有没有办法将这些设置更改为较新的标准,如ECMAScript 5或ECMAScript 2015? 解决方法

javascript – 冻结和密封之间的区别

我刚刚听说过JavaScript方法冻结和密封,它可以用来使任何对象不可变. 这是一个如何使用它的简短示例: var o1 = {}, o2 = {}; Object.freeze(o2); o1["a"] = "worked"; o2["a"] = "worked"; alert(o1["a"]); //prints "worked" alert(o2["a&quo

javascript – ECMAScript中定义的内部属性是什么?

ECMAScript中的Internal Property定义了什么?规范是什么意思 This specification uses various internal properties to define the semantics of object values.These internal properties are not part of the ECMAScript language. They are defined by this specific

javascript – gulp babel,导出未定义

考虑以下示例代码(也许我做错了?) var FlareCurrency = { }; export {FlareCurrency}; 我有以下任务: gulp.task("compile:add-new-currency-minified", function(){ return gulp.src('src/add-new-currency/**/*.js') .pipe(babel()) .pi

javascript – ‘let’和’const’ECMAScript 2015(ES6)有什么区别?

我想知道ES6中let和const之间的区别是什么.它们都是块作用域,如以下代码中的示例所示: const PI = 3.14; console.log(PI); PI = 3; console.log(PI); const PI = 4; console.log(PI); var PI = 5; console.log(PI); 在ES5中,输出将是: 3.14 3.14 3.14 3.14 但在ES6中它将是:

javascript – 如何使用ES5扩展ES6类?

这样做的原因很复杂,但归结为流不理解mixins或任何其他修改ES6类原型的方法.所以我回到了ES5,但我无法弄清楚如何在没有新的情况下调用ES6类的构造函数: class A { constructor() {} } function B() { // what do I put here? I would do something like // A.prototype.co

javascript – 为什么Chrome和FireFox控制台打印未定义?

拿这个简单的Test对象并将其粘贴到控制台中,你会看到它显示为undefined.该对象正在工作,因为它也打印123,但未定义的是什么. 测试: var Test = new (function(){ return { get testing(){ return "123"; } } }); console.log(Test.testing);

我可以在EcmaScript 5中使用新的get和set在一个声明中创建一个javascript函数吗?

我对ES5 getter和setter非常感兴趣,可以用作Angular.js控制器.目前我在做: var helloEC5 = function(){ //constructor this.pants = "jeans"; }; helloEC5.prototype = { firstName: 'Seeya', lastName: 'Latir', get fullName() { console

Javascript Object.seal()不会抛出异常

我想模仿固定对象之类的东西,这样就不会有新成员添加到对象中. Object.seal(Obj)似乎是正确的方法,但是当我尝试创建新成员时它不会抛出异常.该成员不是创建的,但它是在沉默中发生的. var O = { a: 111 } Object.seal(O) O.b = 222 <------ here the exception is expected (tryi

javascript – “use strict”是否适用于在严格范围内声明的函数?

我在jshint中得到这个, [L16:C13] W034: Unnecessary directive “use strict”. 不过我的问题是做这样的工作.. function () { "use strict"; var a = function () { //stuff, (is this also strict) } } 会是严格的吗?显然,严格声明之外的事情并不严格

Javascript setter返回值而不进行验证

JavaScript setter更新引用的内部值,但返回值不正确. var Game = { get points() { return this._points; }, set points(x){ x = Math.min(x,25); this._points = x; return this._points; } }; Game.points = 10 ;

Javascript过滤数组中的值

我有一个数组数组,每个数组包含两个元素.如何通过过滤第一个元素从数组中返回第二个元素? 例如,我有以下数组,我的函数应该返回第一项为8的每个子数组中的第二个元素: var array = [[8, 'first'], [8, 'second'], [1, 'empty'], [8, 'third'], [9, 'empty']]; 预期结果:[‘first’,