鱼C论坛

 找回密码
 立即注册
查看: 1747|回复: 3

[奇技淫巧] 8个Js简写技巧 |【内附高端黑】

[复制链接]
发表于 2017-8-8 09:00:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2017-8-8 11:47 编辑

推荐阅读:

只有“前端工程师”才会懂得#恶趣味 | 【哈哈哈】

Adobe宣判Flash死刑:2020年停止开发和发行

JavaScript是未来编程语言界的王者?




游客,如果您要查看本帖隐藏内容请回复



1、三元操作符


使用if...else语句,这是很多小白爱用的写法:
  1. var fishc = 22;
  2. var say;
  3. if(fishc == 22)
  4. {
  5.     say = "Welcome to FishC";
  6. }
  7. else
  8. {
  9.     say = "www.fishc.com"
  10. }
复制代码


老鸟:
  1. var say = x==22 ? "Welcome to FishC" : "www.fishc.com";
复制代码


没错,后面的条件部分,还可以嵌套更多的三目,循环等操作。


2、逻辑短路


分配一个变量值到另一个变量的时候,你可能想要确保变量不是null、undefined或空。

你可以写一个有多个if的条件语句或者逻辑短路。
  1. var x;
  2. if(x !== null || x !== undefined || x !== ""){
  3.     var answer = x;
  4. }
复制代码


老鸟:
  1. var answer =  x ||'';
复制代码


利用运算符的功能:

或语句:第一个真,第二个真假不影响结果,输出第一个;第一个假,第二个为真,就输出第二个结果。

与语句:第一个假,第二个真假不影响结果,输出false;只有第一个为真,且第二个为真,才输出最后一个值结果。

例如:
  1. if(fishc){
  2.     var b = "xx";
  3. }
  4. else
  5. {
  6.     var b = "oo";
  7. }
复制代码


老鸟:
  1. var b = "xx" || "oo";
复制代码

  1. a&&a=1
复制代码


如果前面有变量a,就执行下面a=1的语句,否则什么也不执行。


3、声明变量


在函数中声明变量时,小白喜欢这么写:
  1. var x;
  2. var y;
  3. var z=22;
复制代码


老鸟:
  1. var x,y,z=22;
复制代码



4、如果存在


如果a不是true,然后做什么。
  1. if(fishc === true)
  2. {
  3.     //嘿嘿嘿
  4. }
复制代码


老鸟:
  1. if(fishc)
  2. {
  3.     //嘿嘿嘿
  4. }
复制代码



5、JavaScript的for循环


能减少部分代码的录入,但对于每天都要敲代码的程序猿兄弟们来讲,这就是极大的方便:
  1. arr=[];
  2. for(var i = 0 ; i < arr.length;i++)
  3. {
  4.     // 嘿嘿嘿
  5. }
复制代码


老鸟:
  1. for(var i in arr)
  2. {
  3.     // 嘿嘿嘿
  4. }
复制代码



6、对象属性


定义对象文字(Object literals)让JavaScript变得更有趣。

如果属性名和值一样,你可以使用下面简写的方式。
  1. var obj = {x:x,y:y};
复制代码


老鸟:
  1. var obj = {x,y};
复制代码



7、箭头函数


经典函数很容易读和写,但它们确实会变得有点冗长。

特别是嵌套函数中调用其他函数时还会让你感到困惑。
  1. // 普通函数
  2. function sayFishc(name) {
  3.     console.log("Welcome",name);
  4. }

  5. // 列表遍历
  6. listA.forEach(function (item) {
  7.    console.log(item);
  8. });

  9. // 定时器
  10. setTimeout(function () {
  11.     console.log("Loaded")
  12. },2222);
复制代码


老鸟:
  1. sayFishc = name => console.log("Welcome",name);

  2. listA.forEach(item =>  console.log(item));

  3. setTimeout(() =>  console.log("Loaded"),2222);
复制代码






这位鱼油,如果喜欢本系列Js帖子,请订阅 专辑&#9758;传送门)(不喜欢更要订阅

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +5 收起 理由
alltolove + 5 + 5 + 5 支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-8 09:19:14 | 显示全部楼层
还有个与表达式
  1. a&&a=1
复制代码
就是如果前面有变量a就执行下面a=1的语句如果没有就算了

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +5 收起 理由
不二如是 + 5 + 5 + 5 Good!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-8-8 10:12:44 | 显示全部楼层
alltolove 发表于 2017-8-8 09:19
还有个与表达式就是如果前面有变量a就执行下面a=1的语句如果没有就算了

以补充~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-22 17:18:55 | 显示全部楼层
想知道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 15:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表