标签: ecmascript-5

迭代NodeJS中的字符串行

我从child_process.exec()NodeJS 得到一个缓冲区(我可以把它变成一个字符串).我需要迭代输出字符串的行.我该怎么做?

javascript node.js ecmascript-5

2
推荐指数
1
解决办法
7461
查看次数

主要浏览器中缺少ECMAScript/JavaScript支持的区域列表?

是否有人知道主要浏览器中ECMAScript/JavaScript缺少支持的确切列表(我说的是IE7 +,Firefox,Chrome,Safari和Opera).

显然我们在代码中进行了特征检测,但是我想要一个理想情况下需要执行检测的功能列表.

javascript browser cross-browser ecmascript-5

2
推荐指数
1
解决办法
289
查看次数

为什么Object.create()如此冗长?

Object.create是JavaScript的一个很好的补充,因为它更多地依赖于JS的原型性质.但是,我不禁发现函数的第二个参数的语法过于冗长,退一步.

例如,如果我想创建一个对象,并在派生对象中指定一个新属性,我需要在属性对象中包含该属性值,无论我是否对额外功能感兴趣.

所以,这很简单:

 o = Object.create({}, { p: 42 })
Run Code Online (Sandbox Code Playgroud)

现在变成:

 o = Object.create({}, { p: { value: 42 } }) 
Run Code Online (Sandbox Code Playgroud)

显然这是一个简单的例子,但对我来说,冗长是不必要的,应该是可选的.

有没有人理解要求属性对象的决定?您对新语法的要求有何看法?

注意:我知道有一些简单的解决方案可以克服这个要求.

javascript ecmascript-5

2
推荐指数
1
解决办法
319
查看次数

没有严格模式的JSON.parse

我正在阅读关于javascript中严格模式的John Resig博客,但我有一个问题.

严格模式的一个特性是使用JSON.parse和JSON.stringify,但我可以使用WITHOUT"use strict".

如果你写他在博客上使用的相同例子:

var str = JSON.stringify({ name: "John" });
// Prints {"name":"John"}
alert( str );
Run Code Online (Sandbox Code Playgroud)

你可以看到这个工作.

为什么允许这样做?我错过了什么吗?

谢谢!

javascript use-strict ecmascript-5

2
推荐指数
1
解决办法
2531
查看次数

1可能不等于1

我今天得到了一个惊喜,我找不到规范的适当部分,以确定这是否是预期的.我的钱在于,宇宙没有任何问题,但是使这个表达式评估为假的规则是什么

(function(){ return this;}).call(1) === 1
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-5

2
推荐指数
1
解决办法
64
查看次数

自动增加对象id JS构造函数(静态方法和变量)

我是JavaScript的新手,我有一个想法,创建类(函数),我知道它是如何工作在JS(原型等),但我需要做一些事情,如在数据库中递增Id.

我的想法是创建静态方法,我认为闭包在这里很适合,每当创建新对象时,它应该返回递增的id.

我不知道实现这个的正确方法是什么,或者这可能是不好的做法.

请提供简单的例子.

javascript oop closures node.js ecmascript-5

2
推荐指数
1
解决办法
5107
查看次数

等效于ES6到ES5中的设置

我有一个我在ES6中迭代的设置.我试图将它转换为ES5中的等价物.由于ES6,我的构建失败了.这就是我将它转换为ES5的原因.

这是我在ES6中的代码

service.getDevices = function (date) {
        var result = [];
        var deviceList = devices[date.getTime()];

        for (let item of deviceList) { // browser compatibility: support for ECMA6
            result.push({"deviceName": item});
        }

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

由于'let',我收到了错误.我尝试使用for (var item in deviceList),它不显示图表.

我也试过这个:

for(var i = 0; i < deviceList.length(); i++){
           result.push({"deviceName" : deviceList[i]});
       }
Run Code Online (Sandbox Code Playgroud)

即使这不适用于集合.谁可以帮助并告诉我如何迭代ES5中的一个集合,如果这是不可能的,有没有任何等效的方法呢?

javascript ecmascript-5 ecmascript-6

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

为什么["text"] == ["text"]为假?

为什么表达式在JavaScript中["text"] == ["text"]评估false

我直觉地认为它是真的,因为两个数组是相同的.JS引擎是否将引用与两个不同的对象进行比较,从而返回false,而不是比较数组的内容?

javascript syntax expression ecmascript-5

2
推荐指数
1
解决办法
66
查看次数

Cypress.io:无论如何要测试特定的滚动量?

想知道是否有某种方法可以在Cypress.io的一定范围内测试滚动量。

进一步来说

  1. 从页面顶部开始,按按钮
  2. 页面向下滚动到一定高度
  3. 测试滚动高度在一定范围内是否正确

我的尝试: 我认为最好的方法是进行测试,然后进行测试,确定当前的div不在手机屏幕的可视区域内。然后向下滚动使其可见。

cy.get('#angular-projects').should('not.be.visible') // div #angular-projects
cy.get('#developer-projects').click() // button
cy.get('#angular-projects').should('be.visible')
Run Code Online (Sandbox Code Playgroud)

想知道是否可以通过mochachai来完成,如果周围没有柏树

javascript mocha.js ecmascript-5 chai cypress

2
推荐指数
1
解决办法
1436
查看次数

泛型:TS2345类型“ T [keyof T]”的参数不能分配给类型“ Date”的参数,其中&lt;T扩展{}&gt;

我经常必须按属性对对象进行排序,因此我编写了以下简单的帮助程序:

static sort = <T extends {}>(list: Array<T>, field: keyof T, descending: boolean = true) =>
  list.sort((a, b) => {
    if (a[field] > b[field]) {
      return descending ? -1 : 1;
    }
    if (a[field] < b[field]) {
      return descending ? -1 : 1;
    }
    return 0;
  });
Run Code Online (Sandbox Code Playgroud)

我经常必须按对象上类似日期的属性对对象进行排序,但是我收到的日期是以格式进行字符串化的"01-Apr-2018",因此我必须先将它们转换为日期。

因此,我用以下内容扩展了上述内容:

static byDate = <T extends {}>(list: Array<T>, field: keyof T, descending: boolean = true) =>
  list.sort((a, b) => {
    if (new Date(a[field]).getTime() > new Date(b[field]).getTime()) {
      return descending ? …
Run Code Online (Sandbox Code Playgroud)

generics ecmascript-5 typescript ecmascript-6 typescript2.0

2
推荐指数
1
解决办法
641
查看次数