首页 > 编程语言 >[转]JavaScript 的if()语句和==的判断

[转]JavaScript 的if()语句和==的判断

时间:2024-01-30 10:46:39浏览次数:33  
标签:语句 判断 false log JavaScript Boolean 字符串 console true

原文地址:JavaScript 的if语句和==的判断 - 系佛 - 博客园

一. if(xx)的判断

JavaScript 遇到预期为布尔值的地方(比如if语句的条件部分),就会将非布尔值的参数自动转换为布尔值。系统内部会自动调用Boolean函数。

1.当if括号里面的表达式为Boolean时,直接判断

复制代码
if (true){
   console.log("true"); //true
}
if (false){
   console.log("true"); //false
}
复制代码

 

2.当if括号里面的表达式为Number时,分两种情况,当number为+0,-0,NaN的时候,为false;其他为true。

复制代码
if(0){
  console.log("true"); //false
}
if(NaN){
  console.log("true"); //false
}
if(1){
  console.log("true"); //true
}
复制代码

 

3.当if括号里面的表达式为String时,空字符串为false,其他为true;

复制代码
if(""){
  console.log("true"); //false
}
if("abc"){
  console.log("true"); //true
}
复制代码

 

4.当if括号里面的表达式为Undefined时,为false;

if(Undefined){
  console.log("true"); //false
}

 

5.当if括号里面的表达式为null时,为false;

if(null){
  console.log("true"); //false
}

 

toBoolean

类型结果
undefined false
null false
Boolean 直接判断
string ""(空字符串)为false,其他为true
Object true
Number +0,-0,Nan为false,其他为true

 

二. a==b的判断

==是比较两个值是否相等,相同类型直接比较,不同类型的话,看情况转换。

  1. String==Number --->toNumber(String)==Number
"" = 0 ; //true,因为“”转换为0
"  " = 0 ; //true
"hello" == 1  //false  ,因为"hello"转换为NaN
"hello" == 0 //false,同理

 

  1. Boolean==(any) --->toNumber(Boolean)==(any)
复制代码
1==true; //true,因为true转换为1
0==false;//true ,因为false转换为0
"0" == true  //false
"0" == false  //true
"00" == false  //true
"0.00" == false  //true
复制代码
  1. Object==String/Number---->toPrimitive(Object)
    对于 Object 类型,先尝试调用 .valueOf 方法获取结果。 如果没定义,再尝试调用 .toString方法获取结
复制代码
{} == true  // false
[] == true  //false
var obj = { 
  a: 0, 
  valueOf: function(){return 1} 
} 
obj == "[object Object]"  //false
obj == 1  //true
obj == true  //true
复制代码
  1. null==undefined,//true
  • ==知识点
    如果两个值类型相同,则执行严格相等的运算
    如果两个值的类型不同
    如果一个是null,一个是undefined,那么相等
    如果一个是数字,一个是字符串,先将字符串转为数字,然后比较
    如果一个值是true/false则将其转为1/0比较
    如果一个值是对象,一个是数字或字符串,则尝试使用valueOf和toString转换后比较
    其它就不相等了

toNumber

类型结果
Undefined NaN
Null 0
Boolean ture->1,false->0
String (""-->0, " "-->0 )空字符串与空白字符串转换数值0,abc"->NaN,"123"->123

标签:语句,判断,false,log,JavaScript,Boolean,字符串,console,true
From: https://www.cnblogs.com/dirgo/p/17996589

相关文章

  • java 判断当前时间是否可以执行
    判断时间privatebooleancanTheTimeExecute(){try{if(StringUtils.isEmpty(containerStockSyncTime)){log.info("[handleContainerStockSyncTask]-executetimeisempty。");returnfalse;}//配置中心按照分钟......
  • 【2.0】SQL语句介绍
    【一】SQL语句的由来【1】socket通信任何基于网络通信的应用程序底层用的都是scoket服务端基于socket通信收发消息客户端基于socket通信收发消息【2】SQL语句的由来为了使MySQL不仅能支持MySQL自己的客户端应用程序,还能支持其他编程语言MySQL采用了S......
  • 判断给出回文串能否构成新的回文串
     AC代码如下:#include<bits/stdc++.h>usingnamespacestd;booljudge(strings,intpos){  swap(s[pos],s[pos+1]);  swap(s[s.length()-pos-1],s[s.length()-pos-2]);  if(s[pos]!=s[s.length()-pos-1]||s[pos+1]!=s[s.length()......
  • 美多商城用户注册-账号登录-多账号登录-首页用户名展示-退出登录-判断用户是否登录-9
    1.单用户名登录逻辑分析2.用户名登录接口设计3.用户名登录接口定义,后端代码需要在users中的views视图中添加,前端login.js login.html添加到对应的目录中然后添加子路由  re_path(r'^login/$',views.LoginView.as_view(),name='login'),classLoginView(View):"""......
  • OpenHarmony—ArkTS限制throw语句中表达式的类型
    规则:arkts-limited-throw级别:错误ArkTS只支持抛出Error类或其派生类的实例。禁止抛出其他类型(例如number或string)的数据。TypeScriptthrow4;throw'';thrownewError();ArkTSthrownewError();限制省略函数返回类型标注规则:arkts-no-implicit-return-types级别:错......
  • SqlServer性能检测之Sql语句排查
    很多时候,我们在用SQL语句查询数据时,难免会漏掉对SQL语句性能的考虑,所以有时就会造成SqlServer服务占用过高的问题,为了大致排查是哪些SQL语句造成的问题,我们可以通过如下SQL查询出最近所有耗时最大的SQL语句,具体查询SQL语句如下所示:SELECTs2.dbid,s1.sql_handle,......
  • MySql执行Sql语句时出现“MySqlException: Parameter ‘@maxNo‘ must be defined.”
    1、......
  • 【干货】一文掌握JavaScript检查对象空值的N种技巧!
    在开发JavaScript应用程序时,经常需要检查对象是否为空。这是因为在处理和操作对象数据时,我们需要确保对象包含有效的值或属性。以下是一些常见情况,我们需要检查JavaScript对象是否为空:防止空引用错误:当我们尝试访问或使用一个空对象时,可能会导致空引用错误(如TypeError:Cann......
  • 【干货】一文掌握JavaScript检查对象空值的N种技巧!
    在开发JavaScript应用程序时,经常需要检查对象是否为空。这是因为在处理和操作对象数据时,我们需要确保对象包含有效的值或属性。以下是一些常见情况,我们需要检查JavaScript对象是否为空:防止空引用错误:当我们尝试访问或使用一个空对象时,可能会导致空引用错误(如TypeError:Can......
  • 三、变位词判断
    变位词判断所谓的变位词,是指两个词之间存在组成字母的重新排列关系如heart,earth,python,typhon简单起见,假设参与判断的两个词仅有小写字母构成,且长度相等解题目标:写一个bool函数,以两个词作为参数,返回这两个词是否变位词解法1:将词1中的字符逐个到词2去检查是否存在,存在就......