• 力推“七进”活动 辽宁省商务厅开展“安全生产月” 2019-07-20
  • 生态环境部部长李干杰:蓝天保卫战突出四个重点、优化四个结构 2019-07-20
  • 北京:篮球世界杯130项筹备工作年内完成 2019-07-16
  • 寻淮洲:红军最年轻的军团长 2019-07-16
  • 胡耀邦与我的一段诗词交往 2019-06-24
  • 《地方领导留言板》留言渠道大公开 2019-06-09
  • 请问版主,我说计划经济和市场经济的帖子,怎么就要进退稿箱呢?中国吃市场经济的亏,还不多么?! 2019-06-09
  • 昆明 —频道 春城壹网 七彩云南 一网天下 2019-06-08
  • 2017“大地飞歌”门票热销 电子票卡可乘公交地铁 2019-05-25
  • 蔡英文广邀“友邦”访台 被讽神仙也救不了“断交” 2019-05-25
  • 日本大阪发生6.1级地震 部分建筑受损严重 2019-05-19
  • 在实现复兴的道路上,注定要经历暴风骤雨。开展伟大斗争,不仅仅是说说而已。 2019-05-19
  • 看了许魏洲的演唱会服装才知道他时尚资源有多少 2019-04-26
  • 第21届古镇灯博会3月18日中山古镇精彩开幕 2019-04-26
  • 《脱身》陈坤万茜“捆钱CP”浪漫闯关 2019-04-24
  • 刘半仙哑谜报新图
    刘半仙哑谜报新图资讯动态建站相关
    咨询热线:023-61252199
    公司动态行业资讯建站相关九度视角推荐信息

    波叔一波中特 - 百度:送你一份JavaScript高逼格写法,收好不谢

    刘半仙哑谜报新图 www.1ur9.net 时间:2018-07-24 11:54:16 关键词:JavaScript JS 函数 代码

    送你一份JavaScript装逼指南,收好不谢

    如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScript时的技巧。

    1. 匿名函数的N种写法

    你知道“茴”的四种写法吗?ε=(?д?`*)??… 扯淡,但你或许不知道匿名函数的好几种写法。一般情况下写匿名函数是这样的:

    (function(){})();

    但下面几种写法也是可以的:

    当然,这样的写法,没有什么区别,纯粹逼格程度。

    2. 另外一种undefined

    从来不需要声明一个变量的值是undefined,因为JavaScript会自动把一个未赋值的变量置为undefined。所有如果你在代码里这么写,会被鄙视的:

    var data = undefined;

    但是如果你就是强迫症发作,一定要再声明一个暂时没有值的变量的时候赋上一个undefined。那你可以考虑这么做:

    var data = void 0; // undefined

    void在JavaScript中是一个操作符,对传入的操作不执行并且返回undefined。void后面可以跟()来用,例如void(0),看起来是不是很熟悉?没错,在HTML里阻止带href的默认点击操作时,都喜欢把href写成javascript:void(0),实际上也是依靠void操作不执行的意思。

    当然,除了出于逼格的原因外,实际用途上不太赞成使用void,因为void的出现是为了兼容早起ECMAScript标准中没有undefined属性。void 0的写法让代码晦涩难懂。

    3. 抛弃你的if和else

    当JS代码里有大量的条件逻辑判断时,那代码看起来多可怕:

    if () {

        // ...

    } else if () {

        // ...

    } else if () {

        // ...

    } else {

        // ...

    }

    不用我说你都猜到用什么语法来简化if-else了。没错,用||和&&,很简单的原理就不用说啦。值得一提的是,有时候用!!操作符也能简化if-else模式。例如这样:

    // 普通的if-else模式

    var isValid = false;

    if (value && value !== 'error') {

        isValid = true;

    }

    // 使用!!符号

    var isValid = !!(value && value !== 'error');

    “!”是取反操作,两个“!”自然是负负得正了。

    4. 不加分号

    关于JavaScript要不要加分号的争论已经吵了好几年。Google的JavaScript语法指南告诉我们要加分号,很多JavaScript语法书籍也告诉我们加上分号更安全。然而,分号加不加,全靠个人对代码的写法,你确信写得足够安全的话,不加分号显得更加高大上。

    5. 赶上ES6的早班车

    ES6即将在年底正式发布,赶时髦的开发者们,赶快在自己的代码里用起来。用上module声明,写写class,捣鼓一下Map,这些都会让你的代码逼格更高。神马?你都不会用?那也好歹在代码头部加上一个ES5的"use strict";呀。

    6. 添加AMD??橹С?/h2>

    给你写的代码声明一下AMD??楣娣?,这样别人就可以直接通过AMD的规范来加载你的??榱?,如果别人没有通过规范来加载你的???,你也可以优雅地返回一个常规的全局对象。来看看jQueryUI的写法:

    (function( factory ) {

        if ( typeof define === "function" && define.amd ) {

            // AMD. Register as an anonymous module.

            define( [ "jquery" ], factory );

        } else {

            // Browser globals

            factory( jQuery );

        }

    }(function( $ ) {

        // 这里放??榇?/p>

        return $.widget;

    }));

     

    就用它来包裹你的实际代码吧,保证别人一看代码就知道你是个专业的开发者。

    7. Function构造函数

    很多JavaScript教程都告诉我们,不要直接用内置对象的构造函数来创建基本变量,例如var arr = new Array(2); 的写法就应该用var arr = [1, 2];的写法来取代。但是,Function构造函数(注意是大写的Function)有点特别。Function构造函数接受的参数中,第一个是要传入的参数名,第二个是函数内的代码(用字符串来表示)。

    var f = new Function('a', 'alert(a)');

    f('test'); // 将会弹出窗口显示test

    或许大家疑惑了,你这样绕着写,跟function f(a) {alert(a);}比有什么好处呢?
    事实上在某种情况下是有好处的,比如不能用eval的时候,你需要传入字符串内容来创建一个函数的时候。在一些JavaScript模板语言的解析,和字符串转换json对象的时候比较实用。

    8. 用原生Dom接口不用jQuery

    一个傲娇的前端工程师是不需要jQuery的,前提是你经得起折腾。实际上,几乎所有的jQuery方法都可以用同样的Dom原生接口来实现,因为这货本来就是用原生接口实现的嘛,哈哈。怎样做到不用jQuery(也叫jQuery-free)呢?阮老师的博文《如何做到 jQuery-free?》 给我们很好的讲解了做法。依赖于querySelector和querySelectorAll这两个现代浏览器的接口,可以实现跟jQuery同样方便和同样效率的Dom查找,而且其他的类似Ajax和CSS的接口同样也可以把原生方法做一些兼容方面的包装即可做到jQuery-free。

    总结

    上述所有的JavaScript逼格写法,一些是为了程序易懂或者效率提高的语法糖,这样的做法是比较可取的,比如前面所说的省略if-else的做法;而有些写法则容易造成代码晦涩难懂或者效率偏低,例如上面说的void 0的写法,实际上不可取。JavaScript语法上灵活,让大家对同一个功能有很多种不同的写法,写法上的优化是对程序结构和代码维护有很大帮助的。所以,逼格得装得好看。

    本文由重庆网站建设服务商九度互联原创,地址为://www.1ur9.net/news/i2532.html

  • 力推“七进”活动 辽宁省商务厅开展“安全生产月” 2019-07-20
  • 生态环境部部长李干杰:蓝天保卫战突出四个重点、优化四个结构 2019-07-20
  • 北京:篮球世界杯130项筹备工作年内完成 2019-07-16
  • 寻淮洲:红军最年轻的军团长 2019-07-16
  • 胡耀邦与我的一段诗词交往 2019-06-24
  • 《地方领导留言板》留言渠道大公开 2019-06-09
  • 请问版主,我说计划经济和市场经济的帖子,怎么就要进退稿箱呢?中国吃市场经济的亏,还不多么?! 2019-06-09
  • 昆明 —频道 春城壹网 七彩云南 一网天下 2019-06-08
  • 2017“大地飞歌”门票热销 电子票卡可乘公交地铁 2019-05-25
  • 蔡英文广邀“友邦”访台 被讽神仙也救不了“断交” 2019-05-25
  • 日本大阪发生6.1级地震 部分建筑受损严重 2019-05-19
  • 在实现复兴的道路上,注定要经历暴风骤雨。开展伟大斗争,不仅仅是说说而已。 2019-05-19
  • 看了许魏洲的演唱会服装才知道他时尚资源有多少 2019-04-26
  • 第21届古镇灯博会3月18日中山古镇精彩开幕 2019-04-26
  • 《脱身》陈坤万茜“捆钱CP”浪漫闯关 2019-04-24
  • 以太坊暴跌原因 南越36选7玩法 福利彩票3d和尾走势图 天天酷跑黄金奖池技巧 魂斗罗归来手游 都能测中福彩中心还不亏死 勒沃库森vs巴黎圣日 皇室战争卡组推荐2018 古怪猴子辅助 纽伦堡红灯区游玩攻略 韩国电影 崛起的武士电子 新开捕鱼棋牌代理 有没有北京时时彩开奖结果 中考排球传球视频 上海天天彩选4历史开奖