对Javascript感到困惑。布尔函数可以用作空函数吗?
我正在为即将到来的采访更新一些Javascript知识。我在看上面写着 如果删除成功,delete操作符将返回true 然后显示一个正在使用的示例:对Javascript感到困惑。布尔函数可以用作空函数吗?,javascript,Javascript,我正在为即将到来的采访更新一些Javascript知识。我在看上面写着 如果删除成功,delete操作符将返回true 然后显示一个正在使用的示例: var christmasList = {mike:"Book", jason:"sweater" } delete christmasList.mike; // deletes the mike property 在这个例子中,delete的使用方式就像一般编程意义上的void函数一样——我知道JS不需要像void那样的声明 有人能给我解释
var christmasList = {mike:"Book", jason:"sweater" }
delete christmasList.mike; // deletes the mike property
在这个例子中,delete的使用方式就像一般编程意义上的void函数一样——我知道JS不需要像void那样的声明
有人能给我解释一下,或者给我一个链接,说明JS函数如何处理不同的返回值的文档,这些文档是否需要为每个返回值单独实现
在该示例中,delete的使用方式类似于void函数
删除运算符不是一个函数,它是一个运算符。它处理对象的属性,而不是它们的值
函数是另一回事,但既然你问:
有人能给我解释一下JS函数如何处理不同的返回值吗
JavaScript是松散类型的。函数不关心值的类型,除非它们需要,并且类型之间的转换大部分时间由运算符处理
如果一个函数需要知道它在操作什么,那么它必须检查这个值,看看它是什么
例如:
function myFunction(myArgument) {
if (typeof myArgument === "function") {
return myArgument();
} else {
return myArgument;
}
}
函数可以返回它喜欢的任何值
function string_or_number() {
if (Math.random() > 0.5) {
return 1;
} else {
return "1";
}
}
强类型语言关心函数返回的值的类型以及传递给参数的值的类型
松散类型的根本不需要。从使用这种语言的人的角度来看,它没有什么特别之处
它将需要关心类型的大部分复杂性转移给编译器作者,而不是编译器的用户,后者只需要关心,如果一个函数被设计为对duck做一些事情,那么它们传递的内容就足够像duck,不会破坏函数
在该示例中,delete的使用方式类似于void函数
删除运算符不是一个函数,它是一个运算符。它处理对象的属性,而不是它们的值
函数是另一回事,但既然你问:
有人能给我解释一下JS函数如何处理不同的返回值吗
JavaScript是松散类型的。函数不关心值的类型,除非它们需要,并且类型之间的转换大部分时间由运算符处理
如果一个函数需要知道它在操作什么,那么它必须检查这个值,看看它是什么
例如:
function myFunction(myArgument) {
if (typeof myArgument === "function") {
return myArgument();
} else {
return myArgument;
}
}
函数可以返回它喜欢的任何值
function string_or_number() {
if (Math.random() > 0.5) {
return 1;
} else {
return "1";
}
}
强类型语言关心函数返回的值的类型以及传递给参数的值的类型
松散类型的根本不需要。从使用这种语言的人的角度来看,它没有什么特别之处
它将需要关心类型的大部分复杂性转移给编译器作者,而不是编译器的用户,后者只需要关心,如果函数设计为对duck做一些事情,那么它们传递的内容就足够像duck,不会破坏函数。Javascript函数总是返回模糊的值。一个函数可以返回布尔值、字符串、对象、数组或HtmleElement 没有固定的类型 功能主开关输入{ 开关输入{ 案例0:返回Hello; 案例一:返回死亡; 案例2:返回0.00042; 案例3:return document.createElementDIV; 案例4:返回true; 案例5:返回窗口; 案例6:返回此文件; 案例7:返回null; 默认值:window.alerts请指定从0到8的输入; } } 一串 int 浮动 HTMLElement 布尔值 窗 这 无效的
Javascript函数总是返回模糊的值。一个函数可以返回布尔值、字符串、对象、数组或HtmleElement 没有固定的类型 功能主开关输入{ 开关输入{ 案例0:返回Hello; 案例一:返回死亡; 案例2:返回0.00042; 案例3:return document.createElementDIV; 案例4:返回true; 案例5:返回窗口; 案例6:返回此文件; 案例7:返回null; 默认值:window.alerts请指定从0到8的输入; } } 一串 int 浮动 HTMLElement 布尔值 窗 这 无效的 您可以查看以下信息: 如果desc.[Configurable]]为true,则 从O中删除名为p的自己的属性 返回true 请注意,“删除”仅适用于对象的属性。这也是一个很好的阅读:-您可以查看以下内容: 如果desc.[Configurable]]为true,则 从O中删除名为p的自己的属性 返回true 请注意,“删除”仅适用于对象的属性。这也是一个很好的阅读方法:-来自: 如果属性是自己的不可配置属性,则在严格模式下抛出 假在非严格。在所有其他情况下返回true 我再简单不过了。除了一个小例子外: alertdelete window.window alertdelete window.foobar alertdelete窗口。从以下位置发出警报: 如果属性是自己的不可配置属性,则在严格模式下引发。在非严格模式下返回false。在所有其他情况下返回true 我再简单不过了。除了一个小例子外: alertdelete window.window alertdelete window.foobar alertdelete窗口。alert正如其他人所指出的,从技术上讲,删除是一种操作,而不是一种功能;然而,对于我们当前关注的问题,这种差异是学术性的,因为操作员的行为与许多用于其副作用的函数相同,也就是说,无效函数。语言规则和使用习惯都很简单 统治 所有函数都提供一个返回值;如果未到达return语句,则该语句将是未定义的 惯例 因为我们总是得到一个返回值,所以我们可以利用它来改进我们的程序。有两个公约;应该使用哪一个取决于用例 返回一个布尔值,表示成功或失败 返回正在操作的对象 选项2对对象上的方法最有用:如果我们的方法更改对象的状态,然后返回对象,我们可以将多个更改捆绑到一行方法调用中:object.change1.change2.change3newVal 当我们想利用操作的成功或失败来确定程序流时,选项1最有用;如果属性没有被删除,我们可能想抛出一个异常,但是如果属性被删除,我们可能想正常继续。然后,我们可以使用if delete object.property尝试删除该属性,并立即转移到成功/失败案例中。正如其他人所指出的,从技术上讲,delete是一个运算符,而不是一个函数;然而,对于我们当前关注的问题,这种差异是学术性的,因为操作员的行为与许多用于其副作用的函数相同,也就是说,无效函数。语言规则和使用习惯都很简单 统治 所有函数都提供一个返回值;如果未到达return语句,则该语句将是未定义的 惯例 因为我们总是得到一个返回值,所以我们可以利用它来改进我们的程序。有两个公约;应该使用哪一个取决于用例 返回一个布尔值,表示成功或失败 返回正在操作的对象 选项2对对象上的方法最有用:如果我们的方法更改对象的状态,然后返回对象,我们可以将多个更改捆绑到一行方法调用中:object.change1.change2.change3newVal
当我们想利用操作的成功或失败来确定程序流时,选项1最有用;如果属性没有被删除,我们可能想抛出一个异常,但是如果属性被删除,我们可能想正常继续。然后我们可以使用if delete object.property尝试删除该属性,并立即转移到成功/失败案例中。它实际上不是一个函数,它是一个运算符,它返回规范中所说的任何内容,它应该返回每个返回值的含义是什么?据我所知,delete操作符的返回值总是真的,我觉得正好相反。在大多数情况下,您应该关心对象是否已成功删除。稳定、可靠的代码将始终进行检查,以确保一切正常。这是因为如果没有删除该项,则可能会偏离代码后面所做的某些假设。我想@FelixKling想说的是,你永远不需要对表达式的返回值做任何事情。它实际上不是一个函数,它是一个运算符,它返回规范所说的任何内容,它应该返回,你说的每个返回值是什么意思?据我所知,delete操作符的返回值总是真的,我觉得正好相反。在大多数情况下,您应该关心对象是否已成功删除。稳定、可靠的代码将始终进行检查,以确保一切正常。这是因为如果没有删除该项,则可能会偏离代码后面所做的某些假设。我想@FelixKling想说的是,你永远不需要对表达式的返回值做任何事情。除了delete不是一个函数。是的,但是op询问了函数的返回值。不是专门的delete操作符。Except delete不是函数。是的,但是op询问了函数的返回值。特别是delete操作符。