以下的绝大部分做法的本质是因为懒 ·🐽·

判断省略括号

不建议初学者使用,一不小心就坑到自己 _(:з」∠)_

正常版

if(love_me) {
  love_you_too(); // love_me为真才会执行
}
yo(); // 永远都会执行

懒癌版

if(love_me)
  love_you_too(); // love_me为真才会执行
yo(); // 永远都会执行

掩耳盗铃版

if(love_me)
  love_you_too(); // love_me为真才会执行
  yo(); // 缩进对齐也没用,依然永远都会执行(python表示不服)

三元运算符

条件 ? 满足时执行 : 否则执行

正常版

if(love_me) {
  love_you_too();
} else {
  emmmm();
}

懒癌版

love_me ? love_you_too() : emmmm();

懒癌判断函数

正常版

function greet(love_me) {
  if(love_me) {
    return 'Love you too!';
  } else {
    return 'Emmmm...';
  }
}

懒癌版

function greet(love_me) {
  if(love_me) 
    return 'Love you too!'; // 如果love_me为真,此处直接返回,后面的通通不会执行

  return 'Emmmm...'; // 否则就会一直执行到这一步
}

ES5中设置传参默认值

正常版

function 问好(姓名) {
  if(!姓名) {
    姓名 = '王花花';
  }
  return '你好' + 姓名;
}

懒癌版

function 问好(姓名) {
  姓名 = 姓名 || '王花花'; // 如果传了姓名就用,没传默认设为"王花花"
  return '你好' + 姓名;
}

批量声明变量

正常版

var a;
var b;
var c;

懒癌版

var a, b, c;

懒癌洁癖实用主义综合症患者(逃

var a
  , b
  , c
  ;

批量变量赋值

正常版

var a = 1;
var b = a;
var c = b;

懒癌版

var a = 1, b = a, c = b;

懒癌洁癖实用主义综合症患者

var a, b, c;
a = b = c = 1;

自触发函数 (IIFE)

一般用于隔离作用域,一个文件写一个,防止一不小心污染全局变量。

正常版

启动();

function 启动() {
  'use strict';
  // ...
}

懒癌版

(function () {
  'use strict';
  // ...
})();

/*
可以这样理解
先用括号把这个匿名函数包起来:
(匿名函数)

然后执行:
(匿名函数)();
*/

懒癌晚期版

!function () {
  'use strict';
  // ...
}();

懒癌领悟版

;(function () { // 行首的分号是干嘛的?
  'use strict';
  // ...
})();

那个分号是为了给前一个依赖文件擦屁股,js文件压缩时会依次将不同文件连接起来,然后去掉所有空格断行注释之类的东西,这样一来两个文件前后就黏一块了。压缩前好好的,压缩后就跑不起来了?卡了3天,没有任何头绪,难道代码需要呼吸?

登录后评论