• js中布尔值的重要作用(精华版)


    布尔值在js中是五种基本数据类型中的一种,有true和false两种状态。
    其他的数据类型在转换为布尔值时,只有""(空字符串),0,NaN,undefined,null是false,别的都是true,
    这里值得注意的是负数不属于这五种,负数转换为布尔值也是true,进行判断的时候要注意,尤其是排序的时候。
    下面说说常用的用法和注意的地方
    1.判断 排序

          var arr = [1, 7, 2, 5, 0, 4];
            function sort(arr, fn) {
                var temp, len = arr.length;
                while (len > 0) {
                    for (var i = 0; i < arr.length; i++) {
                        if (fn(arr[i], arr[i + 1]) > 0) {   //返回值有正负,但是布尔值都是true,所以要用0来判断
                            temp = arr[i];
                            arr[i] = arr[i + 1];
                            arr[i + 1] = temp;
                        }
                    }
                    len--;
                }
                return arr;
            }
            var s = sort(arr, function (a, b) {
                return a - b;
            })
            console.log(s);  
    

    2.开关 通过每次点击bool的变化,来控制自己想要的效果

           var bool=false;
            init();
            function init(){
                var div=document.createElement("div");
                Object.assign(div.style,{
                    "100px",
                    height:"100px",
                    background:"red",
                })
                document.body.appendChild(div);
                div=document.querySelector("div");
                div.addEventListener("click",clickHandler);
            }
            function clickHandler(){
                bool=!bool
                this.style.background=bool?"blue":"red";
            }
    

    3.程序的模块化开发,通过bool来控制后面模块的执行
    存储坐标
    js代码

            var arr=[],
                record=false,   //控制记录
                bool=false;   //控制行动
           
            var div;
           
            init();
            function init(){
                div=document.querySelector("div");
                Utils.dragElem(div);
                div.addEventListener("mousedown",mouseHandler);
                document.addEventListener("mouseup",mouseHandler);
                setInterval(animation,16);
            }
    
            function mouseHandler(e){
                if(e.type==="mousedown"){
                   record=true;       //鼠标按下,变为true,开始记录
                }else if(e.type==="mouseup"){
                    bool=true;  //鼠标松开,开始行动
                    record=false;  //鼠标松开,停止记录
                    arr.reverse();
                }
            }
    
            function animation(){  //每16s执行一次,通过两个布尔值的控制,达到下面记录和重复路径的效果
                recordPath();
                elemMove();
            }
    
            function recordPath(){
                if(!record) return;
                arr.push({x:div.offsetLeft,y:div.offsetTop});
            }
    
            function elemMove(){
                if(!bool) return;
                if(arr.length===0){
                    bool=false;
                    return;
                }
                var point=arr.pop();
                div.style.left=point.x+"px";
                div.style.top=point.y+"px";
            }
    
    

    html代码

     <div></div>
    

    css

                div {
                 25px;
                height: 25px;
                position: absolute;
                background-color: red;
                border:1px solid #000000;
                left:0;
                top:0;
            }
    
  • 相关阅读:
    OC-重写构造方法
    OC-变量作用域
    极光推送
    iOS 学习笔记-关于Button
    关于UIButton的一些用法
    关于tableviewCell 使用的心得
    Xcode 7.2更新插件失败的解决办法
    源代码管理工具的使用心得
    ARC的应用
    OC中的内存管理02
  • 原文地址:https://www.cnblogs.com/94-Lucky/p/13392568.html
Copyright © 2020-2023  润新知