代码优化

// 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: '状态映射表',

 

转载于:https://www.cnblogs.com/allenxieyusheng/p/11534635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值