在JavaScript中,var声明创建全局对象的属性:
var x = 15;
console.log(window.x); // logs 15 in browser
console.log(global.x); // logs 15 in Node.js
ES6引入了具有块范围的声明的词法作用域。
let x = 15;
{
let x = 14;
}
console.log(x); // logs 15;
但是,这些声明是否为全局对象创建属性?
let x = 15;
// what is this supposed to log in the browser according
我是js的新手,正在尝试理解全局函数和私有函数。我理解全局变量和局部变量。但是如果我有一个名为test.html的html和一个名为test1.js和test2.js的两个js文件。现在,我将test1.js和test2.js包含在test.html中,并在test1.js和test.html中调用用test2.js编写的函数。
我在test2.js中编写的函数的格式如下
function abc(){...}
function pqr(){...} etc.
这些函数是全局的吗?如果是,我如何才能不将它们设置为全局的,而仍然在test1.js和test.html中访问它们
正如我所读到的,
阅读关于Function构造函数和function声明之间差异的mdn文档。这里指定的示例可以在浏览器上工作,也可以在node.js repl上工作,但是在通过文件尝试它时,node.js进程会因此错误而崩溃。
ReferenceError: x is not defined
这是节目
var x = "bar";
function test() {
var x = "baz";
return new Function("return x;");
}
var t = test();
console.log(t());
当从带有
a = 123; // becomes global var
var b = 234; // local var
function f() {} // local func
g = function() {} // got a global func
现在,如何打印a和g (以及迄今为止所有其他全局变量),但不打印b和f (以及其他局部变量)。
console.log(this)// is not working.
编辑:建议使用“窗口”变量将只在浏览器中工作,但嵌入式Javascript或Node.js没有“窗口”变量。
我使用了大量使用ajax的MVC3来获取部分视图。如果局部视图包含JavaScript,则会将其添加为新的js文件,如快照所示:
所以如果我有一个js函数:
function checkValue(){
//do work
}
在ajax调用时,将添加一个新的动态JS文件,其中包含此函数,并且它与旧的JS文件冲突一次。
包含的myfile.js:
function checkValue(){
//do work
}
和1.js (动态文件)也会包含它
function checkValue(){
//do work
}
因此,当我由于旧文件中的存在而调用它时,它会调
我使用truffle develop与MetaCoin教程契约进行交互。几个月前,我在一款较旧版本的松露上做过这件事,而且效果很好。
但是现在,每当我尝试使用“等待”时,我都会得到相同的错误。在本教程之后,我尝试了一个全新的MetaCoin应用程序安装,而且我自己的合同都是从头开始编写的,没有什么是可行的。
truffle(develop)> let accounts = await web3.eth.getAccounts()
Uncaught ReferenceError: global is not defined
at evalmachine.<anonymous>
简单地说,问题:
有没有一种方法可以在NodeJS中静态地导入另一个JS文件的函数?(作为Java的静态导入?)
我想做什么的例子:
我有一个文件m1.js,它包含函数:
function add(x,y) { return x + y }
exports.add = add
然后我有一个文件app.js,它导入m1.js
m1 = require('./m1')
var result = m1.add(3,4)
现在,我想要做的是导入m1.js的函数,这样我就可以调用它们,而不必用m1.*作为调用的前缀:
m1 = require('./m1')
var re
首先,我是JavaScript的菜鸟,甚至是Backbone.js的noober。
为了熟悉该技术,我正在学习一些在线教程;在中,我看到了以下内容:
Person = Backbone.Model.extend({
initialize: function(){
alert("Welcome to this world");
}
});
var person = new Person;
在中,我找到了这个表示法:
window.WineView = Backbone.View.extend({
initialize:function (
我正在使用jQuery,我有两个不同的js文件。
file_1.js
$(document).ready(function(){
var A = 'varA';
});
file_2.js
$(document).ready(function(){
console.log(A); // will get an A is undefined because of this closure thing
});
是否有任何方法从一个文件从另一个文件访问一个变量?我需要所有代码都在$(Document).ready(.)中
有一个解决方案,我使用的是使变量全局(不使用v
在运行我的node.js服务器时,我得到了一个编译错误。
我们使用OPTIMIZEJS,这是一个require.js插件来编译它,在node.js中,这个模块称为。
当我运行服务器时,我得到了这个错误。
compilation failed for /tmp/serve.js:
Error: ReferenceError: document is not defined
In module tree:
serve
modules
editor/module
editor/editor
editor/trackeve
可能重复:
我偶然发现了一个JS文件,它可以概括为下面的代码:
(function(window){
// some codes here
})(window);
我想知道这段代码是什么意思?窗口有特殊意义,还是只是一个参数?我们在括号中看到的两个“窗口”有什么不同?
因为这个函数没有名字,所以我假设它是一个匿名函数,所以它只被调用了一次吗?什么时候被调用?
我正在研究JS,并想知道为什么没有定义的JS对象属性返回未定义的。
window.myVar // undefined
现在,如果我尝试访问全局属性myVar (与window.myVar类似),JS将引发一个错误:
myVar // error: myVar is not defined
注意将变量初始化为
var myVar; // undefined
那么,谁能解释一下这背后的过程是什么呢?
在js文件中使用“使用严格”语句之后,它不允许我在ist级别之后使用javascript 这个
'use strict'
module.exports = {
a: function() {
var self = this //works fine upto this level
var name = 'atul';
function b() {
this.name = name; //gives me error as can not set property name of undefined
}
}
}