zoukankan      html  css  js  c++  java
  • 代码优化

    // 1. 优化1: 不仅方便了解释器,也方便了阅读代码的人
    var num = 0,
    	str = "",
    	obj = null,
    	other = void 0;
    
    // 2.不要随意地改变变量的类型,初始化是什么类型就是什么类型
    var num = 23;
     // 错误
    num = "-" + 2 
     // 正确,重新申请一个String变量
    var sign = "-" + 2
    
    // 3. 函数返回的类型应该确定,而不是一回这样一回那样,如例是很好的
    
     function getPrice(count){
     	if(count < 0) return -1;
     	else return count * 100;
     }
    
    // -----------------------------------
    
    // 二:减少作用域的查找。这里指的是全局作用域,一般放在局部作用域里面,减少向上查找的浪费
    错误:这里的map全局的
    <script>
    	map = 12;
    </script>
    
    我们可以让形成局部
    <script>
    !function(){
    	map = 12;
    }()
    </script>
    
    // 这里的! 是将函数声明语句变成了一个函数表达式,是表达式就会在script标签中自动执行,否则匿名函数直接执行会报错
    !function(){alert('iifksp')}()        // true
    +function(){alert('iifksp')}()        // NaN
    -function(){alert('iifksp')}()        // NaN
    ~function(){alert('iifksp')}()        // -1
    
    
    
    // 2. 尽量不用闭包
    闭包的作用在于可以让子级作用域使用它父级作用域的变量,将父级的变量保持在内存中! 但是这样一级一级的查找直到全局作用域会很费时间!
    PS:所谓闭包就是在函数体类再嵌套一个函数,这个函数使用父级函数的变量,然后返回这个子函数 ,称之为闭包函数,这样可以将父级函数的变量暴露出来
    
    错误使用:
    
    getResult(count){
    	count++;
    	process(){
    		let factor = 2;
    		return count * factor-5;
    	}
    
    	return process();
    }
    
    正确是用法:将count变量直接传递给process函数
    
    getResult(count){
    	count++;
    	process(count){
    		return count * factor-5;
    	}
    	return process(count)
    } 
    
    // ----------------------------------------------------------
    尽量使用===符号 而不是 == 
    如果你确定了变量的类型,那么就没必要使用==了
    如果类型不确定,那么应该手动做一下类型转换
    var totalPage = "5";
    if(parseInt(totalPage) === 1){
    
    }
    使用==在JSLint检查的时候是不通过的
    
    //-----------------------------------------------------------
    
    合并表达式
    getPrice(count){
        return count < 0 ? return -1 : count * 100;
    }
    
    2. 连等(执行顺序是从右到左的)
    
    overtime = favhouse = listingDetail = {...}
    
    
    //------------------------------------------------------------
    ES6的各种简洁的方法
    var nums = [4, 8, 1, 9, 0];
    nums.sort(function(a, b){
        return b - a;
    });
    
    var nums = [4, 8, 1, 9, 0];
    nums.sort(a, b => b - a);
    
    
    CLASS
    
    function Person(name, age){
        this.name = name;
        this.age = age;
    }
    
    Person.prototype.addAge = function(){
        this.age++;
    };
    
    Person.prototype.setName = function(name){
        this.name = name;
    };
    
    
    class Person{
        constructor(name, age){
            this.name = name;
            this.age = age;
        }
        addAge(){
            this.age++;
        }
        setName(name){
            this.name = name;
        }
    }
    
    
    // 字符串拼接
    var url = `/list?page=${page}&type=${type}`;
    
    ES6还有其它一些比较好用的功能,如Object的assign,Promise等,也是可以帮助写出简洁高效的代码
    
    
    
    ----------------------------------------------------
    一:变量
    1. 是否:Boolean
    is+动词ing/形容词
    
    isLoading
    isShow
    
    2. 处于状态 +ed/+able
    disabled 
    editable 是否可以编辑
    
    3. 开关
    withTab: '是否带选项卡',
    checkJs: '检查Js'
    
    
    二:函数
    1. 事件处理
    onXxClick/touch/handleXxChange/onXXX
    onSubmit: '提交表单',
    handleSizeChange: '处理分页页数改变'
    onKeydown: '按下键'
    
    2. 异步处理
    getXXX/fetchXXX/update
     getUsers: '获取用户列表',
     fetchToken: '取得Token',
     updateUsrInfo: '更新用户信息',
     createAccount: '创建账户'
     deleteXx
    
     3. 跳转
     	toXx 和 goXx
     	toTplDetail: '跳转到模板详情页面',
     	backHome: '回到主页'
     	goHome: '跳转首页',
    
    4. 格式化数据
    	formatXx/joinXx
    	formatDate: '格式化日期',
    
    
    三: 数组
    	options, list, maps, nodes, entities, collection
    	userList: '用户列表',
    	tabOptions: '选项卡选项',
    	stateMaps: '状态映射表',
    
  • 相关阅读:
    二分查找经典题型
    部队侦察
    取随机数函数的使用
    猜拳游戏
    Learning C Struct
    Linux shell get random number
    Linux Bash shell one practice : array if else
    Linux shell misc
    Bash Shell read file line by line and substring
    storm的并发和消息保障性
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/11534635.html
Copyright © 2011-2022 走看看