gpt4 book ai didi

javascript - 大括号只是包裹代码是什么意思?

转载 作者:搜寻专家 更新时间:2023-10-30 22:27:12 25 4
gpt4 key购买 nike

查看Vue.js的源码时,发现两个大括号之间有几行代码,而且在这个构造之前没有任何定义(比如function, ( )=> 或其他东西)。我将它粘贴到控制台并运行。但是,如果我不将它分配给变量,我该如何使用它呢?

这是什么?为什么我们写代码的时候要用这种方式?

....
var formatComponentName = (null);

{
var hasConsole = typeof console !== 'undefined';
var classifyRE = /(?:^|[-_])(\w)/g;
var classify = function (str) { return str
.replace(classifyRE, function (c) { return c.toUpperCase(); })
.replace(/[-_]/g, ''); };

warn = function (msg, vm) {
var trace = vm ? generateComponentTrace(vm) : '';

if (config.warnHandler) {
config.warnHandler.call(null, msg, vm, trace);
} else if (hasConsole && (!config.silent)) {
console.error(("[Vue warn]: " + msg + trace));
}
};

tip = function (msg, vm) {
if (hasConsole && (!config.silent)) {
console.warn("[Vue tip]: " + msg + (
vm ? generateComponentTrace(vm) : ''
));
}
};
}
...

最佳答案

您正在说明的内容称为 block 。您提供的代码示例是一种相当不常见的方法,用于将一组指令分组用于风格目的,作为一个没有 ifwhiledo... whileforwith 不会改变代码的执行方式。

为了演示,

document.body.innerHTML = "Testing...";

{
document.body.innerHTML += "1";
document.body.innerHTML += "2";
document.body.innerHTML += "3";
}

document.body.innerHTML += "<br/>...and there you have it!"

https://jsfiddle.net/5crb1ezf/

在实践中等同于:

document.body.innerHTML = "Testing...";
document.body.innerHTML += "1";
document.body.innerHTML += "2";
document.body.innerHTML += "3";
document.body.innerHTML += "<br/>...and there you have it!"

这两个示例将向浏览器输出相同的文本:

Testing...123 ...and there you have it!


另一方面,如果您将 block 与控制结构结合使用,例如 ifwhiledo...whileforwith,它将改变代码的执行方式。

if (condition) {
// conditional statement here
}

正如上面的 marty 所指出的, block 的引用可以在这里找到: https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/block

关于javascript - 大括号只是包裹代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45231091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com