我正在阅读https://github.com/rvagg/bl的文档,我注意到,在示例中,他们使用const来要求一个模块,这让我想知道:这是一个好习惯吗?我的意思是,对我来说,这看起来是一个好主意.
以上链接的直接示例是:
const BufferList = require('bl')
var bl = new BufferList()
bl.append(new Buffer('abcd'))
bl.append(new Buffer('efg'))
/*...*/
Run Code Online (Sandbox Code Playgroud)
我也注意到示例中缺少分号但很好,这已在其他地方彻底讨论过了.
所以我刚开始学习 javascript,我现在在函数模块中,我正在玩它,突然我遇到了一个疑问:
为什么是这样:
if(x==true){
return 1;
}
Run Code Online (Sandbox Code Playgroud)
与此不同:
if(x){
return 1;
}
Run Code Online (Sandbox Code Playgroud)
?
你看,我有这个代码:
function isAdult(age){
if(age >= 18){
return true;
}
return false;
}
function nameAndAge(string, boolean){
if(boolean == true){
var my_string = string + " is adult";
return my_string
}
var my_string = string + " is under age";
return my_string
}
var talisa_age = 22;
var talisa_name = "Talisa Maegyr";
var status = isAdult(talisa_age);
var str = nameAndAge(talisa_name,status);
console.log(str)
Run Code Online (Sandbox Code Playgroud)
无论“talisa_age”值如何,我都会得到以下输出:
"Talisa Maegyr is under age"
Run Code Online (Sandbox Code Playgroud)
但是,如果我将 nameAndAge …
constJavaScript中的关键字是否创建了对不可变数据结构的不可变引用?[我假设JavaScript中存在不可变数据结构.]
因为string它似乎这样做:
var x = "asdf";
const constantX = x;
alert("before mutation: " + constantX);
x = "mutated"
alert("after mutation: " + constantX);
Run Code Online (Sandbox Code Playgroud)
输出:
突变之前:asdf
突变后:asdf
我正在学习Java课程,所有声明都使用block scope(int, double, boolean, etc.).然而,在JavaScript中var是函数范围.
let在ES6中出现并给了JS开发人员阻止范围.我正在调整我的编码风格,我选择一起摆脱var所有.
这个可以吗?
下面的片段揭示了疑问
var foo = 'something'
var baz = 'other thing'
var obj = {
prop1 : 'my prop',
prop2 : foo, //referencing external variable
prop3 : baz //referencing external variable
}
// here we get the expected obj to be printed
console.log(obj)
// now I change one of the initial variable
foo = 'changed'
// here we get the sabe print as the first, that is the ~problem~
console.log(obj)
Run Code Online (Sandbox Code Playgroud)
那么,如何在没有重新分配的情况下在prop2上打印"已更改" obj.prop2 = foo
我按照教程创建了一个JavaScript秒表,并尝试将其扩展为使用多个秒表(一个类的多个实例).我遇到的问题是当我试图在时钟滴答作响时显示当前值时我需要对类实例进行硬编码,因为使用"this"不起作用(在我使用console.log的行上).我已经将代码减少到最低限度以尝试理解这方面,并粘贴了我在下面的内容:
function Timer(){
var time1 = null;
var time2 = null;
var timeLoop = null;
function getTime(){
var day = new Date();
return day.getTime();
}
this.start = function(){
time1 = getTime();
timeLoop = setInterval(function(){
time2 = getTime();
console.log(_Timer.duration());
//console.log(this.duration());
},500);
}
this.duration = function(){
return (time1 - time2) / 1000;
}
}
Run Code Online (Sandbox Code Playgroud)
我认为下面的链接描述了我的问题,但我不明白它在这里应用它.问题是由于所有者是this.start而不仅仅是这个,我如何修改代码以使其适用于任何Timer实例?
http://www.quirksmode.org/js/this.html
我已经包含了硬编码值行和不起作用的"this"行.
谢谢,
杰兰特
我正在使用 const 或 var 在我的 nodeJS 代码中导入库,想知道哪种方法更好且内存效率更高?
选项1:
const _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)
选项 2:
var _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)
哪个更好?选项 1 还是选项 2 ?
鉴于这样的事情:
const audio = React.findDOMNode(this.refs.audio);
const seeker = React.findDOMNode(this.refs.seeker);
const {left, right} = seeker.getBoundingClientRect();
const seekToPerc = (event.clientX - left) / (right - left);
audio.currentTime = this.props.totalRunTime * seekToPerc;
Run Code Online (Sandbox Code Playgroud)
这是否过度使用const?我应该let在这里使用吗?
我正在阅读Nodejs API,我对缓冲区的迭代感到困惑:
for (const b of buf10) {
console.log(b)
}
Run Code Online (Sandbox Code Playgroud)
const用于声明常量,为什么要使用const而不是let?
我是nodejs的新手.我一直在观看Youtube上的教程,有些人使用'const',而不是我在Javascript中熟悉的'var'.我认为'const'应该表示常量和'var'变量.但我仍然没有得到它.为什么需要使用'const'而不是'var'?
javascript ×6
ecmascript-6 ×3
node.js ×3
boolean ×1
class ×1
console.log ×1
const ×1
constants ×1
immutability ×1
methods ×1
this ×1
var ×1