Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Javascript感到困惑。布尔函数可以用作空函数吗?_Javascript - Fatal编程技术网

对Javascript感到困惑。布尔函数可以用作空函数吗?

对Javascript感到困惑。布尔函数可以用作空函数吗?,javascript,Javascript,我正在为即将到来的采访更新一些Javascript知识。我在看上面写着 如果删除成功,delete操作符将返回true 然后显示一个正在使用的示例: var christmasList = {mike:"Book", jason:"sweater" } ​delete christmasList.mike; // deletes the mike property​ 在这个例子中,delete的使用方式就像一般编程意义上的void函数一样——我知道JS不需要像void那样的声明 有人能给我解释

我正在为即将到来的采访更新一些Javascript知识。我在看上面写着

如果删除成功,delete操作符将返回true

然后显示一个正在使用的示例:

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操作符。