ECMAScript 6介绍了该let声明.我听说它被描述为"本地"变量,但我仍然不太确定它与var关键字的行为有何不同.
有什么区别?何时应该let使用var?
我最近一直在阅读很多Javascript,并且我注意到要导入的.js文件中的整个文件包含如下所示.
(function() {
...
code
...
})();
Run Code Online (Sandbox Code Playgroud)
这样做的原因是什么,而不是一组简单的构造函数?
"var"是可选的吗?
myObj = 1;
Run Code Online (Sandbox Code Playgroud)
与...一样 ?
var myObj = 1;
Run Code Online (Sandbox Code Playgroud)
我发现它们都是我的测试,我认为var是可选的.是对的吗?
有没有办法制作"私有"变量(在构造函数中定义的变量),可用于原型定义的方法?
TestClass = function(){
var privateField = "hello";
this.nonProtoHello = function(){alert(privateField)};
};
TestClass.prototype.prototypeHello = function(){alert(privateField)};
Run Code Online (Sandbox Code Playgroud)
这有效:
t.nonProtoHello()
Run Code Online (Sandbox Code Playgroud)
但这不是:
t.prototypeHello()
Run Code Online (Sandbox Code Playgroud)
我习惯在构造函数中定义我的方法,但由于一些原因,我正在远离它.
我有一个从一些服务器端代码生成的列表,在使用jQuery添加额外的东西之前我需要弄清楚它中已经有多少项.
<ul id="mylist">
<li>Element 1</li>
<li>Element 2</li>
</ul>
Run Code Online (Sandbox Code Playgroud) 我试图让我的jQuery函数在IE8上工作.我正在从Google的服务器加载库(http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js).
将$(function(){})永远不会被调用.相反,我得到一个错误Object expected.我打开了开发人员并typeof $在控制台中运行,它就像是undefined.
我试过去其他我知道使用jQuery(jquery.com)的网站,那些都有用,有什么我可能会在这里缺少的吗?
关于JavaScript变量范围的快速问题.
为什么alert()函数打印值i而不是返回undefined?
$(document).ready(function () {
for(var i = 0; i < 10; i += 1){
}
alert("What is 'i'? " + i);
});
Run Code Online (Sandbox Code Playgroud)
我对JS很新,在几乎所有其他语言中我都涉及过,for循环范围内的声明将包含该循环的值,但在这种情况下不是,为什么?
即What is 'i'? 10'打印.
也许很简单的问题.
我应该var在JavaScript中使用关键字.在我看来使用它或不具有相同的效果(但我当然还在学习语言)
比如这些对我来说似乎都是一样的:
(function(){
var a = "mundo"
alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)
和
(function(){
a = "mundo"
alert("Hola, " + a )
})()
Run Code Online (Sandbox Code Playgroud)
但当然必须有一个更复杂的例子,差异显示出来.
为什么常规赋值语句(比方说 x = 5)返回赋值的值(5在本例中),而赋值与变量declaration(var x = 5)一起返回undefined?
我通过在Chrome浏览器的Javascript控制台中执行这些语句获得了返回值:
> var x = 5;
undefined
> y = 5;
5
Run Code Online (Sandbox Code Playgroud) 当我在node.js中键入它时,我得到了undefined.
var testContext = 15;
function testFunction() {
console.log(this.testContext);
}
testFunction();
=>undefined
Run Code Online (Sandbox Code Playgroud)
没有var关键字,它传递(=> 15).它在Chrome控制台中运行(有和没有var关键字).
javascript ×9
scope ×4
jquery ×2
var ×2
coding-style ×1
ecmascript-6 ×1
for-loop ×1
html ×1
iife ×1
let ×1
node.js ×1
variables ×1