• JavaScript 中 双感叹号 !! 的作用


    作用:!! 将后面的表达式强制转换为布尔类型的数据(boolean),也就是只能是true或者false;

    布尔型的转换,javascript约定规则为:
    结果是 false 的情况:
    false、0、undefinded、null、” ”(空字符串) 为 false
    结果是 true 的情况:
    true、1、”非空字符串”、任意数组,对象,函数(函数是特殊的对象)即使是空数组,空对象 为 true

    特别注意:
    字符串”0″转化成bool 为true ,数值0 转化为bool 为false

    !与 !!

    解释:一个!号表示 非 ,两个 !!号表示 非非,!!基本就只应用于将类型转换为布尔值。
    举个例子:

    var a;
    console.log(a); //undefined
    console.log(!a); //true 
    console.log(!!a); //false
    

    以上代码定义了一个变量a 并没有赋值,所以结果是 undefined ,但是使用 !将undefined转换成了bool,但是undefined本身应该是false,结果是相反的,所以再加一个!使得结果转换成正确的bool值,
    即 !!a 表示把a转换成bool值:a--> undefined-->false
    所以 !!(双感叹号)的作用就是将后面的表达式强制转换为布尔类型的数据(boolean)

    小结:

    对null与undefined等其他用隐式转换的值,用一个感叹号返回的都是true,用两个感叹号返回的就是false,所以两个感叹号的作用就在于,将这些值转换为“等价”的布尔值,如果明确设置了变量的值(非null/undifined/0/”“等值),结果就会根据变量的实际值来返回,如果没有设置,结果就会返回false。

  • 相关阅读:
    我觉得 一个 单片机 代码 程序猿 连一个链表都不会写的 话 ,太说不过去了 ,学习 一下
    peripheralStateNotificationCB
    SimpleProfile_GetParameter && SimpleProfile_SetParameter
    performPeriodicTask
    如何在IAR工程中创建和使用模板
    英语 单词 收集
    KD-树(下)
    KD-树(上)
    KNN
    命令方式联网与界面network-manager方式联网
  • 原文地址:https://www.cnblogs.com/qingheshiguang/p/14863369.html
Copyright © 2020-2023  润新知