提问人:Angus 提问时间:11/6/2023 更新时间:11/14/2023 访问量:126
编程逻辑
The programming logic
问:
我正在学习面向初学者的在线 Javascript 课程。一个练习是关于Math.floor(的),给出的例子是:
get floorNum(x){
let _x = x;
_x = Math.floor(x);
return _x;
}
我的问题是:为什么不直接将“return Math.floor(x)”放在函数体中?为什么让 _x = x,然后返回 _x?为什么不直接返回 x?底层逻辑是什么? 我想学习一些基本的编程逻辑。
我试过谷歌,但没有找到我想要的东西。我是一个绝对的初学者。
答:
1赞
Nmeer Naji
11/6/2023
#1
你是对的!,没有理由这样做 8n 这个例子。
你可以这样写
function floor(x) {
return Math.floor(x)
}
但请记住,这种技术在处理克隆的类、对象时很有用。
-4赞
Go_linski
11/6/2023
#2
试试这个:
_x = x => Math.floor(x);
评论
-4赞
Tejesh Palagiri
11/6/2023
#3
实际上,在 js 中,我们可以声明一个以 _ 开头的变量。 根据我的直觉,他们可能只是用 _ 来表示地板这个词。 以这种方式编写或声明变量没有任何限制。
0赞
sdinushan
11/6/2023
#4
这也很好用。
get floorNum(x){return Math.floor(x);}
我认为他们是这样编码的,以便于理解。 他们使用下划线 ( _ ) 来表示变量名也可以以 ( _ ) 符号开头。在专业程序员中,使用此符号作为“私有(隐藏)”变量的别名。
评论
1赞
freedomn-m
11/6/2023
在 JS/C#(至少不是所有语言)中,约定意味着它是一个“私有变量”,只能在该方法/类中访问,不应该直接访问(例如,使用具有 getter/setter 的私有模块级变量)。_
0赞
Kelechi Daniels
11/7/2023
在 JS/C#(至少不是所有语言)中,_ 约定意味着它是一个“私有变量”,只能在该方法/类中访问,不应直接访问
1赞
Guerric P
11/6/2023
#5
让我们一步一步来做:
get floorNum(x){
// Here you are duplicating the argument (supposing it's a number)
let _x = x;
// Here you are reassigning the previous variable, making the first line useless
_x = Math.floor(x);
return _x;
}
由于第一行是无用的,因此您的代码可以重构为:
get floorNum(x){
const _x = Math.floor(x);
return _x;
}
由于除了返回它之外,您没有做任何事情,因此可以再次将其重构为:_x
get floorNum(x){
return Math.floor(x);
}
上一个:用户正在关注自己
下一个:按正确的顺序对图形的节点进行排序
评论
floorNum
get
let _x = x; x =
在某些语言中,这可能是一种不好的做法,因为它需要不需要的作业。由于 javascript 是无类型的,这可能只是或通常会是 - 但他们可能试图灌输“最佳实践”,即与使用变量分开声明变量 - 然后未能正确地做到这一点。对于初学者来说,这是多么令人困惑。let _x;
let _x = Math.floor...
get floorNum(x)
x
undefined