一些‘优雅’的js写法
最近在用Vue,读了一下官网的demo源码,顿时觉得同样是javascript,我写的简直是一坨屎…..之前拼了老命一直在实现逻辑,看了这个demo的代码之后,才真的认识到什么叫做‘优雅的代码’,以后要多读读高手的代码。同时也意识到自己的不足:之前看《javascript高级程序设计》的时候看到的许多数组和对象的方法,我都只是看了一眼,潜意识中认为很少用,没有认真理解记忆。其实那只是我不会用而已,
·
最近在用Vue,读了一下官网的demo源码,顿时觉得同样是javascript,我写的简直是一坨屎…..之前拼了老命一直在实现逻辑,看了这个demo的代码之后,才真的认识到什么叫做‘优雅的代码’,以后要多读读高手的代码。同时也意识到自己的不足:之前看《javascript高级程序设计》的时候看到的许多数组和对象的方法,我都只是看了一眼,潜意识中认为很少用,没有认真理解记忆。其实那只是我不会用而已,人家一行我要写好多个if,else顺带好多bug。果然基础还是要牢固,以后要慢慢接近‘优雅’。
所以,在这里记下我看到的,之前自己不知道的写法,遇到多少就记录多少,今天是第一个。对于这些新方法的理解也会标注出来,但是这些理解未必正确,如果您看到了错误,请不吝赐教,谢谢。
1.赋值的方法
这里在赋值的时候使用了 && 操作符,关于&&操作符有个特性(短路操作):在A&&B中,当A为true,则返回B;A为false时A&&B必定为false,所以直接返回A。根据这个特性,可以看出下边两句的区别
this.str = "CH";
var str = this.str && this.str.toLowerCase(); //输出 "ch"
this.str = null;
var str = this.str && this.str.toLowerCase(); //输出 null
//相当于
if(this.str){ //当this.str字符串存在,则把他转为小写赋值给str
str = this.str.toLowerCase();
}else{ //否则把他自己赋值给str
str = this.str;
}
更多推荐
已为社区贡献7条内容
所有评论(0)