首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

javascript函数从不返回true,你知道为什么吗?

JavaScript函数从不返回true的原因是因为JavaScript中的条件判断是基于"真值"和"假值"的概念。在JavaScript中,除了以下几个特定的"假值"之外,其他所有值都被视为"真值":

  • false:布尔值false
  • 0:数值0
  • "":空字符串
  • null:空值
  • undefined:未定义的值
  • NaN:非数值

当一个函数返回一个值时,该值会被自动转换为"真值"或"假值"。如果函数返回true,它会被转换为"真值",但这并不意味着函数从不返回true。实际上,函数可以返回任何值,包括true。

以下是一些可能导致函数不返回true的常见情况:

  1. 函数中的条件判断逻辑错误:函数中的条件判断可能存在错误,导致函数不满足返回true的条件。
  2. 函数返回的是"假值":函数可能返回false、0、""、null、undefined或NaN等被视为"假值"的值。
  3. 函数没有返回值:函数可能没有明确的返回语句,或者返回了一个未定义的变量。

需要注意的是,以上情况并非绝对,具体取决于函数的实现和逻辑。如果需要更具体的答案,可以提供函数的代码或更多上下文信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Go语言必须支持多返回函数知道为什么

不过有少数编程语言,函数可以返回多个值,Go和Python就是这样的语言。其实这种返回多值的方式对于有些编程语言,如Python,就是一个语法糖。不过对于go来说,还真需要,那么为什么需要呢?...在main函数中调用了calc函数。不过要注意,在调用go函数时,用于接收函数返回值的变量个数必须与函数返回值的个数相同,否则无法编译通过,并会显示如下图所示的错误信息。...Go语言有一个规定,就是在代码中只要定义了变量,必须要使用,不使用你就别定义。...现在来回答本文最开始的提出的问题:Go语言的函数为什么需要返回多个值。...所以对于Python来说,多返回函数只是锦上添花,而对于go语言来说,多返回函数是雪中生态。 下面就让calc函数返回一个error。

1.6K30

知道JavaScript现在有多少种函数

在前一篇文章中,我们大致了解了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文。 一旦上下文被切换,整个语句的效果可能都会发生改变。那么,切换上下文的时机就显得非常重要了。...在 JavaScript,切换上下文最主要的场景是函数调用。在这一课,我们就来讲讲函数调用切换上下文的事情。我们在讲函数调用之前,首先来认识一下函数家族。 1....普通函数的 this 值由“调用它所使用的引用”决定,其中奥秘就在于:我们获取函数的表达式,它实际上返回的并非函数本身,而是一个 Reference 类型。...3. this 关键字的机制 说完了 this 行为,我们再来简单谈谈在 JavaScript 内部,实现 this 这些行为的机制,让对这部分知识有一个大概的认知。...如果构造器返回的是对象,则返回,否则返回第一步创建的对象; 显然,通过 new 调用函数,跟直接调用的 this 取值有明显区别。那么我们今天讲的这些函数跟 new 搭配又会产生什么效果呢?

29210
  • JavaScript执行(三):知道现在有多少种函数

    在前一篇文章中,我们大致了解了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文。 一旦上下文被切换,整个语句的效果可能都会发生改变。那么,切换上下文的时机就显得非常重要了。...在 JavaScript,切换上下文最主要的场景是函数调用。在这一课,我们就来讲讲函数调用切换上下文的事情。我们在讲函数调用之前,首先来认识一下函数家族。...普通函数的 this 值由“调用它所使用的引用”决定,其中奥秘就在于:我们获取函数的表达式,它实际上返回的并非函数本身,而是一个 Reference 类型。...this 关键字的机制 说完了 this 行为,我们再来简单谈谈在 JavaScript 内部,实现 this 这些行为的机制,让对这部分知识有一个大概的认知。...如果构造器返回的是对象,则返回,否则返回第一步创建的对象; 显然,通过 new 调用函数,跟直接调用的 this 取值有明显区别。那么我们今天讲的这些函数跟 new 搭配又会产生什么效果呢?

    43030

    真的知道『立即执行函数

    立即执行函数,经常使用,但是确定了解它嘛? 下面,就来看看吧! 1、定义 立即执行函数,又称IIFE....1、 函数声明 // 函数声明 !...== 函数表达式 function test(){ console.log('Function declaration'); } 2、函数表达式 把一个(匿名)函数声明式赋值给一个变量的形式,称为函数表达式...'); }() 报错:Uncaught SyntaxError: Unexpected token ')' 原因:立即执行函数 ,是执行函数表达式,而不是函数声明式 4、函数表达式 当一个函数需要立即执行的情况...Expression'); }()); 实践中,一般用下面的方式,因为代码看着比较清晰 (function (){ console.log('Function Expression'); })(); 6、为什么立即执行函数前要加逗号

    61320

    知道JavaScript全部的对象分类

    JavaScript 宿主对象千奇百怪,但是前端最熟悉的无疑是浏览器环境中的宿主了。 在浏览器环境中,我们都知道全局对象是 window,window 上又有很多属性,如 document。...可以通过这个链接查看。 但是遗憾的是,这个表格并不完整。所以在本篇的末尾,我设计了一个小实验,可以自己尝试一下,数一数一共有多少个固有对象。 4....JavaScript 用对象模拟函数的设计代替了一般编程语言中的函数,它们可以像其它语言的函数一样被调用、传参。...以新对象为 this,执行函数的[[call]]; 3. 如果[[call]]的返回值是对象,那么,返回这个对象,否则返回第一步创建的新对象。...这样的规则造成了个有趣的现象,如果我们的构造器返回了一个新的对象,那么 new 创建的新对象就变成了一个构造函数之外完全无法访问的对象,这一定程度上可以实现“私有”。

    55920

    JavaScript对象、函数知道JavaScript

    ("a"); //true obj.propertyIsEnumerable("b"); //false /* 返回一个数组,包含所有(自身)可枚举属性 */ Object.keys(obj); //...类理论:在构造完成后,通常只需要操作这些实例(而不是类),因为每个实例都有需要完成任务的所有行为。...六、函数 JavaScript中的函数无法(用标准、可靠的方法)真正地复制,所以只能共享函数对象的引用。这意味着,如果修改共享函数,比如增加一个属性,所有引用地方都会随之修改!...constructor === Object; //true 详解: 创建一个新对象并替换了函数默认的.prototype对象引用,那么新对象并不会自动获得.constructor属性。...但是JavaScript最强大的特性之一就是它的动态性,任何对象的定义都可以修改(除非你把它设置成不可变)!

    48731

    知道网络为什么要分层

    如果放在 IP 协议中的目标地址,那包到了中转站,怎么知道最终的目的地址是 D 呢? 教科书不会通过场景化的例子,将网络包的生命周期讲出来,所以就会很困惑,不知道这些协议实际的应用场景是什么。...网络为什么要分层? 这里我们先探讨第一个问题,网络为什么要分层?因为,是个复杂的程序都要分层。 ?...于是,调用process_layer2(buffer)。当然,这是一个假的函数。但是明白其中的意思,知道肯定是有这么个函数的。那这个函数是干什么的呢?...是不是有 process_http(buffer) 函数呢? 没有的,如果是一个网络包处理程序,不需要有 process_http(buffer),而是应该交给应用去处理。交给哪个应用呢?...浏览器知道,又要发起另一个 HTTP 请求了,于是使用端口号,将请求发给了应该调用send_tcp(buffer)。不用说,Buffer 里面就是 HTTP 请求的内容。

    1.5K20

    知道什么是回调函数

    今天我们更新了回调函数内容, 欢迎大家关注点赞收藏⭐️留言 一、回调函数是什么 我们先来看一下回调函数的最基本概念: 回调函数就是一个通过函数指针调用的函数。...如果函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。...结合这幅图和上面对回调函数的解释,我们可以发现,要实现回调函数,最关键的一点就是要将函数的指针传递给一个函数(上图中是库函数),然后这个函数就可以通过这个指针来调用回调函数了。...回调函数就是一个通过函数指针调用的函数。如果函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。...二、为什么要使用回调函数 因为可以把调用者与被调用者分开,所以调用者不关心谁是被调用者。它只需知道存在一个具有特定原型和限制条件的被调用函数

    15510

    JavaScript对象:知道全部的对象分类

    JavaScript 宿主对象千奇百怪,但是前端最熟悉的无疑是浏览器环境中的宿主了。 在浏览器环境中,我们都知道全局对象是 window,window 上又有很多属性,如 document。...可以通过这个链接查看。 但是遗憾的是,这个表格并不完整。所以在本篇的末尾,我设计了一个小实验,可以自己尝试一下,数一数一共有多少个固有对象。...JavaScript 用对象模拟函数的设计代替了一般编程语言中的函数,它们可以像其它语言的函数一样被调用、传参。...以新对象为 this,执行函数的[[call]]; 3. 如果[[call]]的返回值是对象,那么,返回这个对象,否则返回第一步创建的新对象。...这样的规则造成了个有趣的现象,如果我们的构造器返回了一个新的对象,那么 new 创建的新对象就变成了一个构造函数之外完全无法访问的对象,这一定程度上可以实现“私有”。

    66130

    这 3个Python 函数知道

    map map() 函数接受另一个函数作为参数,以及某种数组。这个想法是将一个函数(作为参数传入的函数)应用于数组中的每个项目。...这派上用场有两个原因: 不必写一个循环 它比循环更快 让我们看看它的实际效果。我将声明一个名为 num_func() 的函数,它将一个数字作为参数。该数字被平方并除以 2 并原样返回。...我已经声明了一个名为 more_than_15() 的函数,顾名思义,如果作为参数给出的项目大于 15,它将返回 True: 接下来,我们声明一个数字数组并将它们作为第二个参数传递给 filter()...这背后的主要思想是它将给定的函数应用于项目数组并返回单个值作为结果。 最后一部分很关键——reduce() 不会返回一个项目数组,它总是返回一个值。让我们看一张图来具体说明这个概念。...从代码实现开始,让我们从 functools 模块导入 reduce 函数并声明一个返回两个数字之和的函数: 现在我们可以重新访问代码中的图表,并验证一切是否正常工作: 暂时不要进入评论部分——我完全知道还有其他方法可以对列表中的项目求和

    15750

    也许不知道JavaScript 高级函数

    高阶函数是对其他函数进行操作的函数,可以将它们作为参数或通过返回它们。简单来说,高阶函数是一个函数,它接收函数作为参数或将函数作为输出返回。...length 函数 currying 的实现中,使用了 fn.length 来表示函数参数的个数,那 fn.length 表示函数的所有参数个数?...compose 就是组合函数,将子函数串联起来执行,一个函数的输出结果是另一个函数的输入参数,一旦第一个函数开始执行,会像多米诺骨牌一样推导执行后续函数。...compose 接受函数作为参数,从右向左执行,返回类型函数 fn()全部参数传给最右边的函数,得到结果后传给倒数第二个,依次传递 compose 的实现 var compose = function...0) { count-- return func.call(null, result) // result 上一个函数返回结果 } else { //回复count

    15710

    知道C语言中的危险函数

    下面的三行代码,功能非常简单,就是创建了一个 char 类型的数组 dst,然后使用 strcpy 函数将字符串 “123456789” 复制到 dst中。...如下图中的栈结构,如果将长度为16字节的字符串赋给 acArrBuf 数组,那么 EBP 和返回值都会被覆盖。...此时若黑客用精心构造的数据覆盖函数返回值,等到函数返回时,就会去黑客覆盖的返回值地址去执行事先安排好的攻击代码。 ? 如何防范?...为了防止缓冲区溢出,在写程序时尽量做到以下两点 使用安全的函数,下面列举了一些常见的高危函数,建议大家尽量避免使用。...函数严重性解决方案gets最危险使用 fgets(buf, size, stdin)strcpy很危险改为使用 strncpy。strcat很危险改为使用 strncat。

    1.7K10

    SAS-函数(三),这几个函数知道~

    %mend dde_file_yn; /*exist:判断一个数据集是否存在,如果存在返回1,不存在返回0*/ data _null_; a='b'; b1=exist('a'); b2=exist(...1,不存在返回0)、exist(判断一个数据集是否存在,如果数据集存在返回1,不存在返回0)的作用...例子小编就不在举了 在编程中,有一些函数可以快速获取数据的属性,比如:观测数,变量个数等等..还是先看一段代码...,不过我知道X命令怎么写... systask command "rd /s/q D:\日常练习\sas_func\新建文件夹\"; 在SAS编程中,有一类V开头的函数,不知道有没有用过,之前见过K开头的函数...vname、vlabel、vlength、vvalue V系列函数还有几个,不过小编觉得这几个函数就可以了,Vname是得到变量的名称...这个函数是最鸡肋的吧,肯定是先知道了变量名称,在去获取变量名称感觉没啥意义......也可能是小编理解不到位 感觉最实在的也就是Vvalue,小编最开始不知道这个函数的时候,都是用put(var,format.)去得到format的值...其他几个函数具体啥意思可以看上面代码注释部分

    4.4K41

    面试官:真的确定这个JS题中的“x !== x”可以返回True

    在面试的过程中,有被问一些奇怪面试题的经历?这些面试题与常规问题不同:这些面试问题看起来很简单,但却考验JavaScript 的透彻理解,今天我将它们整理出来,看看你是否都能回答出来。...== x”可以返回true? 要输出“hello fatfish”,“x”的值应该是多少? const x = ? // Please fill in the value of "x?...== x) // true console.log(Number.isNaN(x)) // true 2. (!isNaN(x) && x !== x) 可以返回 true ?...== x) { console.log('hello fatfish') } 也许知道“对象”,Defineproperty”,可以帮助我们解决这个问题。...这个问题可能并不容易,但只要你了解 JavaScript就会知道“Number.MAX_SAFE_INTEGER 常量代表 JavaScript 中的最大安全整数 (²⁵³ — 1)”。

    13630

    知道JavaScript》:理解js原生函数

    所有typeof返回值为object的对象(比如数组、函数)都包含一个内部属性[[class]](可以将其看作一个内部的分类,而非传统的面向对象意义上的类)。...(true); 4 5console.log(a.valueOf()); // abc 6console.log(b.valueOf()); // 42 7console.log...(c.valueOf()); // true 在需要用到封装对象中的基本类型值的地方会发生隐式拆封,具体过程就是强制类型转换的过程,这个在下篇中再细看。...javascript设计模式二:策略模式 javascript设计模式三:代理模式 javascript设计模式四:迭代器模式 javascript设计模式五:原型模式 javascript...设计模式六:发布-订阅模式(观察者模式) javascript设计模式七:模板方法模式 javascript设计模式八:职责链模式 javascript设计模式九:中介者模式 javascript

    76920

    知道为什么电脑总是被黑客入侵

    我不知道,因为我的电脑还没被入侵。但为了以后我知道自己电脑被谁入侵了,所以接下来我还是带大家去了解一下吧 ?...在我们学习网络技术中,经常会遇到所谓的端口,那么端口是什么意思呢,网络技术中的端口默认指的是TCP/IP协议中的服务端口,一共有0-65535个端口,比如我们最常见的端口是80端口,默认访问网站的端口就是80,直接在浏览器打开...www.xf1433.com:80,会发现浏览器默认把80去掉,就是因为这是个默认端口,所以没必要再显示出来,还有用于ftp文件传输的21端口,我们知道一台主机通常可以提供网页服务,ftp服务,邮件的SMTP...服务等,都是可以同时在一个ip上进行的,那为什么不会造成混乱呢,原因就是通过ip+端口来区分这些服务,让每个端口有自己的分工,又能同时使用一个ip地址。...3389端口 3389端口是服务器默认连接端口,我们都知道电脑的默认用户名是administrator,但是密码很多人就设置很简单的密码或者空密码,导致被入侵,DUBrute这款软件堪称黑客神器,不知道还有没有人在玩呢

    2K20

    知道 JavaScript 中的错误对象有哪些类型

    作者:Isha Jauhari 译者:前端小智 来源:dottoro 每当 JavaScript 中发生任何运行时错误时,都会引发Error对象。...属性 Error 对象具有2个属性 name ——设置或返回错误名称。具体来说,它返回错误所属的构造函数的名称。...message-设置或返回错误消息 ? 事例 1.通用的错误 我们可以使用Error对象创建一个新的Error,然后使用throw关键字显式抛出该错误。...简单来说,当我们将不正确的参数传递给encodeURIComponent()或decodeURIComponent()函数时,就会引发这种情况。...---- 代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

    7K21

    知道函数栈帧的创建和销毁

    2、函数是怎么传参的? 3、函数调用是怎么做到的? 4、函数调用结束后是怎么返回的?...之后,在烧烤的时候,从上往下拿,拿出来的表示已经在烧烤了,可以将它删去。 一叠便条要简单得多:插入的待办事项放在清单的最前面;读取待办事项时,只读取最上面的那个,并将其删除。...–百科 Name Function eax “累加器”, 用来存放函数返回值 ebx "基地址"寄存器,可作为储存器指针来使用, 在内存寻址时存放基地址 ecx 计数器, 在循环和指针操作时,要用它来控制循环次数...为什么要将call指令的下一条指令的地址存起来呢??...是因为在Add函数调用结束的时候,需要返回继续执行call指令的下一条指令,所以在执行call指令的时候要将call下一条指令的地址存起来,在Add函数调用结束的时候,就能根据存的地址找到call指令的下一条指令

    13310
    领券