我只是想知道这两者有什么区别
File1.js
$(function()
{
function MyFunction()
{
// some code here
}
});
File2.js
$(function()
{
// call it.
MyFunction();
});
File1.js
function MyFunction()
{
// some code here
}
File2.js
$(function()
{
// call it.
MyFunction();
下面是一个名为index.js的文件
// index.js
let a = 1;
function foo(name) {
let b = 2;
}
如果我运行它,我知道a和foo在解析阶段被附加到全局作用域中。但是现在我没有运行foo函数,foo的函数作用域是在解析的时候决定的吗?如果确定了,name和b放在哪里?
实际上,当我读到“你还不知道JS --作用域和闭包”时,我被这个问题给困住了。这里是161行和171行之间的。此时不会执行getStudentName,但作用域管理器会找到studentID。getStudenName喜欢index.js中的函数foo,studentID
由于我现在已经开始学习js,所以我对javascipt很陌生,我对var非常困惑,据说它是函数作用域和块作用域;
如果是,那么我们如何在该功能之外访问它们!?假设我想从另一个类中使用它(我不知道可能通过创建某个对象或其他什么方法)(我想我们不能在这里创建对象!)因为它是一种基于函数式编程的语言,所以我猜!:()
var y = "global";
if (y === "global") {
var y = "block-scoped";
console.log(y); // expected output: block-scoped
}
我知道'js‘中的函数有词法作用域(即函数在定义时创建其环境(作用域),而不是在执行时创建)。
function f1() {
var a = 1;
f2();
}
function f2() {
return a;
}
f1(); // a is not defined
当我运行'f()‘时,它会返回内部函数。我明白了,这就是'return‘的作用!
function f() {
var b = "barb";
return function() {
return b;
}
}
cons
我不明白这一点--在if条件中定义的var怎么能在该条件之外使用?
示例JS:
if (1===2) {
var myVar = "I live in brackets";
}
$("#debug").append("myVar = " + myVar);
$("#debug").append("but I'm about to throw a 'not defined' exception right... now " + firstAppearanceVar);
渲染:myVar =
General:在node.js中,如何访问正在执行的文件的作用域?
例如:我有一个模块(mod.js)和一个需要它的文件(main.js)。在mod.js中,我需要执行eval()以访问main.js的作用域,如下所示:
mod.js:
exports.runCode = function(code) {
var x = 1;
// do some stuff to x and code
return eval(code) + x;
}
main.js:
var amod = require('./mod');
var func = function(a,b)
如果我通过了从模块A到模块B的“测试”功能,为什么:
//A.js
import B from './B'
export default {
self: this,
test: ()=> {
console.log(self === this) // this should return true but doesn't because when B calls it, "this" is B
},
initA:function() {
B.initB(this.test); //
我有两个.js文件: root.js和external.js
root.js
import myExternalFunction from 'external.js'
class Parent {
constructor(){}
parentFunction = () => {
console.log('I was called from an external function using "this."')
}
}
external.js
export default myExternalFun
我正在尝试学习JS,关于javascript闭包,我有一个问题-
function fooOuter(){
var a = 10;
var b = 20;
return function fooinner(x){
return a + b + x;
};
}
这是否意味着Javascript中的内部函数存储了对同一作用域中所有变量的引用。也就是说,在这种情况下,fooinner存储变量a和b的引用。
ng-如果我通过简单的javascript function.My函数更改值时不起作用,但是不能看到值的变化。请参考下面的代码。
<div id="span" ng-app='MyModule' ng-cloak ng-controller="MyController">
<div ng-if="!bool">
This is for true
</div>
<div ng-if="bool">
This is False
</div>
{{b
我想将一个变量传递给另一个文件。我在新的js文件中使用了lat变量,但不起作用。 在address.php中: <div class="saveaddress">Click me</div>
<script>
var lat;
var lng;
function displayLocation(position) {
var lat = position.coords.latitude;
var lng = position.coords.longitude;
}
<
Js社区我是JS的新手,我对JS作用域感到困惑,在这个例子中,我有一个if语句,我在块var age和this中定义了一个局部作用域,然后我控制台记录了这个变量age,我得到了25,这是为什么?是因为if语句是全局定义的,所以在块中定义的语句也是全局的吗?还有一件事,我注意到年龄变量被附加到全局对象,这是我记录它的窗口,我找到了年龄变量,但我不确定为什么会发生这种情况?
if(true){
var age = 25;
}
console.log(age);
我一直在试图巩固我对JS执行上下文的理解,但是我很难得到关于为什么下面的代码没有打印出"hello world“的解释。
var foo = "foo";
function test1() {
console.log(foo)
var bar = "hello world";
test2();
}
function test2() {
console.log(bar);
}
test1();
我的理解是,在test1()中执行的test2()可以访问test1()的执行上下文,并且应该能够通过将作用域链向上移动到定义