zoukankan      html  css  js  c++  java
  • javascript基础:逻辑运算符

    1、&&/||返回能够被转换为布尔值的值

    &&操作符不一定返回布尔值true/false,但总是返回一个能转换为布尔值的值,这决定于用于比较的是什么值。

    非0数字转为true,数字0转为false,null、undefined转为false,对象、数组、函数表达式、非空字符串转为true,空字符转为false,函数执行时返回计算结果。

    注意即使是空数组或不含任何属性的对象都返回true。

    含有NaN类型的比较返回NaN。

    &&的操作顺序是从左至右,当左边的计算值为false或转换后的值为false时,右边的值计算值将不再比较。

    function t(){
      return 0 && -1;
    }
    console.log(t());

    0

    上式中,0 && –1逻辑与比较,因为0转换为布尔值为false,因此,-1不再计算比较,只计算左边的值--0。

    console.log(function(){} && -1);

    -1

    特殊情况:

    console.log(NaN && -1);

    NaN

    console.log([] && -1);

    -1

    如果逻辑与比较左边的运算结果为true,则返回最后一位比较结果。

    console.log(true && {} && 0);

    0

    最后的结果为0,因为0转换为布尔值为false。因此在判断中

    if(true && {} && 0)

         alert(‘ok’);

    else

         alert(‘fail’);

    中,将弹出fail。

    2、逻辑运算符在实际中的运用

    同行执行多个计算:

    fun1() && fun2();

    如果fun1运算结果为true,则继续执行fun2,它不计较fun2最后返回的是什么结果。

    var aa = aa || 1;
    console.log(aa);

    1

    这利用了||会返回结果的特性。如果aa已定义,则返回aa定义的值,如果没有,则返回数字1。

    var a = 1 && [];
    console.log(a);

    []

    如果一个函数不返回结果,则默认返回undefined。

    function Y(){
    }
    console.log(Y());

    undefined

  • 相关阅读:
    ActionScript 条件编译
    FLASH通讯小结
    关于ob_start()
    剖析PHP中的输出缓冲
    Ext.app.controller的refs
    php多线程解决之stream_socket_client
    谷歌的JQuery库
    PHP计划任务之关闭浏览器后仍然继续执行的函数
    关于php调用可执行程序,在后台运行而不让页面等待
    把预定义的字符串转化为html标签
  • 原文地址:https://www.cnblogs.com/sumsung753/p/5188386.html
Copyright © 2011-2022 走看看