zoukankan      html  css  js  c++  java
  • js中, 用变量或对象作为if或其他条件的表达式

    源: 因为js是弱语言, 就体现在js的变量是弱类型的, 在js中所有变量类型声明都用var, 而在其他强类型语言中,如java/c,必须有强制类型转换和类型检查才能编译通过等,

    但是: 弱语言也有优势: 起码在写js条件判断表达式时可以直接用变量或者对象来判断

    来人, 上代码:

    // 代码很简洁, 先讨论当变量a为不同值时的条件表达式结果
    	var a; // 只声明变量 
    	if (a) {
    			alert('true');
    		} else {
    			alert('false');
    		}
    

      

     

     

    a的值 说明 表达式 if(a)的结果: 
    var a;  只声明不赋值  false
     a = '' || a = "" || a = null || a = undefined  当a为空串或null或undefined时,评估结果为false  false
     a = 'somevalue', ...  当为a赋值后, 评估结果true  
     a = ' ' || a = " "  * a为空格, 空格也是一个字符, 评估结果为true  
     a = 0 || a = 0.0  * 当a为数值0或0.0,0.00,评估结果为false,其他数值一律为true  
     a = f  当a为函数对象, 且不带括号, 该函数对象定义了评估结果就为true,否则为false   
     a = f()  当a为函数对象, 且带括号, 则先执行函数, 按照函数的返回结果来作为评估结果, 若无返回结果: 则为false,因为默认返回undefined  
    a = obj.pro1, a = obj.f1() 当a为对象的属性或方法时, 按照a为单独带队属性或方法时的一样进行评估  
  • 相关阅读:
    【WinAPI】User32.dll注释
    Unity 用ml-agents机器学习造个游戏AI吧(1) (Windows环境配置)
    Unity C#笔记 容器类
    Unity C#笔记 委托/事件/Action/Func/Lambda表达式
    Unity C#笔记 协程
    游戏AI之模糊逻辑
    游戏AI之路径规划
    游戏设计模式——黑板模式
    游戏AI之决策结构—行为树
    游戏AI之感知
  • 原文地址:https://www.cnblogs.com/nelson-hu/p/7879468.html
Copyright © 2011-2022 走看看