js有哪些变态的语法?
JS这个语言好是好,但是很多时候写起来太丑了,每次看大牛的代码的时候,妈妈都问我为什么跪着读代码,随着 ES 2015的普及我们可以写出很多可读性强且漂亮的代码,那么接下来就带着大家一块学习一下可以把JS写漂亮的 “变态” 语法。
在组织面向对象代码的时候我们通常使用的语法是 :
function Swiper(){
}
原型编程时我们往往会因为语言的无奈写成这样的 :
Swiper.prototype.init = function (){}
Swiper.prototype.render = function(){}
...
这样写丑陋且麻烦,那么如何让我们的代码变得更漂亮,更好用那?对于JS有一定了解的童鞋可能会这么写,兼容性良好且可以节省大量的代码。
Swiper.prototype = {
constructor : Swiper,
init : function(){
},
render:function(){
}
....
}
这样组织看起来工整一点但是还会存在不少莫名其妙的属性constructor是个啥,好像没啥用啊,那么如果我们在项目中加入了类似jQuery 这样的类库,我们的代码就可以变得更加简练,类似于这样
$.extend(Swiper.prototype,{
init : function(){
},
render:function(){
}
})
但是受限于语法,没法让方法看起来很很清爽,而且要引入一个庞大的类库,那么我们在项目构建时使用babel这样的编译工具,我们可以写成
Object.assign(Swiper.prototype,{
Init(){
},
render(){
}
})
现在你的代码可以无需任何类库,变得漂亮,优雅。甚至无需使用class关键字就可以让我们的代码变得清晰、耐看,有逼格。
说完了面向对象这个大事再跟大家普及两个极其方便的ES6新特性。
一行式数组去重:
var arr = [1,1,2,3,2,3,4,5,6,7]
arr = Array.from(new Set(arr));
ok数组去重完毕,不再用一大堆逻辑代码处理数组中的重复,不可谓不”变态”
让我们的HTMLCollection 可以使用forEach , map ,filer... 等遍历属性 :
当我们选择一组元素想要遍历的时候我们在es5中往往需要非常恶心的for循环语法:
例如 :
var domlist = document.querySelector(“.list”);
我们需要使用非常恶心的for 循环
for( var i = 0 ; i < domlist.lenght ; i++){
domlist[i].....
}
恶心的让人欲仙欲死,那么如何让这段代码变得优雅那 ?
domlist = Array.from(domlist)
domlist.forEach( dom =>{
dom....
})
怎么样,是不是代码上了一个台阶的赶脚。
好了,今天的“变态”语法就暂时说到这里,想要了解更多,我们后续再分享。
js有哪些变态的语法?的更多相关文章
- 关于JS脚本语言的基础语法
JS脚本语言的基础语法:输出语法 alert("警告!"); confirm("确定吗?"); prompt("请输入密码");为弱 ...
- js进阶 10-2 JQuery基础语法是什么
js进阶 10-2 JQuery基础语法是什么 一.总结 一句话总结: 1.jquery语法超级简单:基础语法是:$(selector).action() 2.jquery选择的时候是带了引号的,肯定 ...
- js 模板引擎 jade使用语法
Jade是一款高性能简洁易懂的模板引擎,Jade是Haml的Javascript实现,在服务端(NodeJS)及客户端均有支持. 功能 · 客户端支持 · 超强的可读性 · 灵活易用的缩进 · 块扩展 ...
- js学习(5)语法专题
Js是一种动态类型语言,变量没有类型限制,可以随时赋值 强制转换: 主要指使用Number(),String()和Boolean()三个函数,手动将各个类型的值,分别转换为数字,字符串或布尔值 Num ...
- Vue.js教程--基础(实例 模版语法template computed, watch v-if, v-show v-for, 一个组件的v-for.)
官网:https://cn.vuejs.org/v2/guide/index.html Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统. 视频教程:https: ...
- 9.12 开课第9天 (JS脚本语音:基础语法、语句)
全称JavaScript 网页里面使用的脚本语音 非常强大的语言 基础语法:1.注释语法 单行注释// 多行注释/**/ 2.输出语法 alert(信息); 弹出信息 ...
- js学习笔记1:语法、数据类型与转换、运算符与运算
注意: 上部代码错误,将停止运行,下部的代码无法显示 typeof 用来定义内容类型,不会输出内容只会输出类型 一.js输出语法 1. 弹窗输出('')内的内容: ...
- WebStorm ES6 语法支持设置和ES6语法的JS文件编译为ES5语法文件
ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2.0.ES6的目标,是使得JavaS ...
- 使用node.js+babel,支持import/export语法
如果要在node里面支持import/export default语法步骤: 1.使用npm安装 babel的客户端工具 npm init 会生成package.json文件 2.接着安装bebel客 ...
随机推荐
- Apache web服务器(LAMP架构)
Apache web服务器(LAMP架构) apache介绍 1).世界上使用率最高的网站服务器,最高时可达70%:官方网站:apache.org 2).http 超文本协议 HTML 超文本标记语言 ...
- VirtualBox for mac
一. VirtualBox 1.下载 官网: https://www.virtualbox.org/wiki/Downloads 2.安装 傻瓜式安装即可 二.centOS7 1.下载 centOS: ...
- idea下使用Git基本操作(转载)
IDEA中Git的更新.提交.还原方法: https://blog.csdn.net/geng31/article/details/78585557 IDEA中Git的提交到GitHub http:/ ...
- 个人爱好:idea 项目结构呈现风格
- cumsum函数
>>> a = np.array([[1,2,3], [4,5,6]]) >>> a array([[1, 2, 3], [4, 5, 6]]) >>& ...
- Maven的pom配置文件
1.1 Maven的pom配置文件 1.1.1 pom文件内容和作用 Pom.xml文件用来设置项目的项目依赖.插件.项目版本等信息,其中必须的是xml的根元 ...
- hibernate 的API使用
1.Query对象:不需要写sql语句,但需要hql语句,和sql很类似 (1)sql和hql区别:sql操作表和表字段,hql操作实体和实体属性 (2)使用: 2.Criteria对象:不需要写语句 ...
- bug:进程可调用函数而子线程调用报错
在调试摄像头时遇到问题:在主进程里调用下述函数能够成功,但在子线程里创建时总是失败,错误打印为 sched: RT throttling activated. UniqueObj<OutputS ...
- springboot打成Jar包后部署至Linux服务器上
下面主要记录一下springboot打包成jar包在Linux服务上部署的步骤: 1.通过WinSCP,将相应的Jar文件,复制到Linux指定目录下,如/home/ 2.打开ssh,进入/home目 ...
- 【转】前端的BFC、IFC、GFC和FFC
什么是BFC.IFC.GFC和FFC CSS2.1中只有BFC和IFC, CSS3中才有GFC和FFC. FC的全称是:Formatting Contexts,是W3C CSS2.1规范中的一个概念. ...