小编azt*_*ack的帖子

未定义窗口/全局的属性?

看来undefined是window/global的一个属性:

在此输入图像描述

我一直认为undefinednull一样,是JavaScript中的uniqe值.

但上面的代码(在Chrome中测试)让我感到困惑.

有人可以解释原因

undefined in window
Run Code Online (Sandbox Code Playgroud)

评估为真,而

null in window
Run Code Online (Sandbox Code Playgroud)

评价为假

javascript

9
推荐指数
1
解决办法
315
查看次数

为什么(42中的'k'); 为for(42中的'k')抛出异常; 不是,在JavaScript中?

从语言设计的角度来看,为什么呢

if ('k' in 42);
Run Code Online (Sandbox Code Playgroud)

抛出TypeError异常

for ('k' in 42);
Run Code Online (Sandbox Code Playgroud)

才不是?

我已经阅读了ECMAScript规范中的以下部分:

有人可以解释这种不一致的理由吗?

为什么不能表达'k' in 42if (...)只是评估为false

javascript ecmascript-5

9
推荐指数
1
解决办法
229
查看次数

如何编写类似gvim-help-doc的文本文件?

gvim帮助doc包含"链接",我可以通过按ctrl +跳转到主题如何格式化一个可以像这样运行的文本

vim

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

有多少CSS格式上下文?

我正在阅读CSS2.1规范.我知道"块格式化上下文","内联格式化上下文","表格/网格/弹性格式化上下文".

我想知道,有多少种"格式化背景"?有完整的清单吗?

css

6
推荐指数
1
解决办法
265
查看次数

我可以在 C++ Builder 2007 中链接使用 vs2005 编译的库吗?

我使用 VS2005 将 google v8 编译成 v8.lib。我可以在 C++ Builder 2007 中链接它吗?

c++ c++builder hyperlink

5
推荐指数
1
解决办法
1373
查看次数

如何在不更新其他包的情况下`yarn add`?

我写了一些完全没有依赖关系的包,我把这些包放在我的私人 Gitlab 上。我想用yarn add GIT_URL_TO_PACKAGE --module-folder=my_module. 问题是每次我添加一个新包时,yarn都会在package.json. 但我只想安装命令中指定的包。

有没有选择yarn add或一些技巧?

供参考:

我只想"package manager"从我的私人 Gitlab 下载代码并记录包标签/版本/sha1。Yarn只是一个突然出现在我脑海中的工具。如果npm或其他包管理器可以做到这些,我很乐意切换到那个。

package-managers npm yarnpkg

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

框何时建立内联格式化上下文?

我读到在某些情况下从MDN创建块格式化上下文:块格式化上下文.

我想知道盒子何时建立内联格式化上下文?

我知道的一个案例是:当一个块容器盒只包含内联级别的盒子时.

css

4
推荐指数
1
解决办法
793
查看次数

3
推荐指数
1
解决办法
1091
查看次数

深层继承链是否会减慢 V8 JavaScript 引擎中的方法查找速度?

我正在用 TypeScript 编写游戏的基类。它具有发送消息、资源管理等功能。受到Mixins的启发,我编写了以下代码(编译为 JavaScript):

function Messenger(Base) {
    return class Messenger extends Base {
        $dispatch(e) {
           // TODO
        }
    };
}
function ResourceManager(Base) {
    return class ResourceManager extends Base {
        $loadRes(key) {
            // TODO
            return Promise.resolve({});
        }
    };
}
class Component {
}
class GameBase extends Component {
    start() {
        console.log('start');
    }
    init() {
        console.log('init');
    }
}
const Klass = ResourceManager(Messenger(GameBase));
var gg = new Klass();
gg.start();
Run Code Online (Sandbox Code Playgroud)

据我所知,当我尝试调用 时gg.start,JavaScript 引擎会查找原型链,在这种情况下它会更长一点,并且当 mixins 增长时它会变得很长: 方法查找

这会减慢方法查找速度吗?V8 是否优化了这个查找过程?我可以忽略查找开销吗?

javascript inheritance v8 mixins

3
推荐指数
1
解决办法
205
查看次数

如何使用Babel.js将导入语句插入AST?

我试图使用Babel.js将ImportDeclaration插入JavaScript代码段中:

const babel = require('babel-core')
const t = babel.types
const traverse = babel.traverse
const template = babel.template
const generate = require('babel-generator').default

const babylon = require('babylon')

const code = [
  "import A from 'a'",
  "import B from 'b'",
  "export default {",
  "  components: {",
  "  },",
  "  methods: {",
  "    init () {",
  "    }",
  "  }",
  "}"
].join("\n")
console.log(code)
const ast = babylon.parse(code, {
  sourceType: 'module'
})
var n = []
traverse(ast, {
  ImportDeclaration: {
    exit(path) {
      n.push(path)
    }
  } …
Run Code Online (Sandbox Code Playgroud)

javascript abstract-syntax-tree babeljs

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

是否可以在objective-c中为类实例定义方法

在Ruby中,我可以为任何对象定义方法:

jack = "jack"
def jack.say_hi
 puts "hi, I'm #{self}"
end
jack.say_hi
Run Code Online (Sandbox Code Playgroud)

是否有可能在Objective-C中做同样的事情?怎么样?

ruby objective-c

0
推荐指数
1
解决办法
87
查看次数

Ruby 中的符号和 JavaScript 中的符号有相同的用途吗?

Symbol从编程语言设计的角度来看,Ruby 和 JavaScript(也许其他一些也具有等效类型的编程语言)是否具有相同的目的?(问题#1)

我知道这两种语言都有Symbol类型。

Symbol在这两种语言中都可以用来从对象中检索方法:

const a = [];
a[Symbol.iterator] // [Function: values]
Run Code Online (Sandbox Code Playgroud)
a = []
a.method(:at) => #<Method: Array#at(_)>
Run Code Online (Sandbox Code Playgroud)

Ruby 中的符号是独一无二的:

:a.object_id => 776028
:a.object_id => 776028
Run Code Online (Sandbox Code Playgroud)

在 JavaScript 中,使用创建的符号Symbol.for保存在内部字典中,这使得它类似于unique

Symbol.for('a') === Symbol.for('a') // true
Run Code Online (Sandbox Code Playgroud)

Symbol(..)无论参数是什么,总是返回一个新符号:

// Why this is designed this way? Question #2
Symbol('a') === Symbol('a') // false
Run Code Online (Sandbox Code Playgroud)

javascript ruby language-design typescript

0
推荐指数
1
解决办法
502
查看次数