当前位置: 首页 > news >正文

济宁专业网站开发公司wordpress插件上传图片

济宁专业网站开发公司,wordpress插件上传图片,网站建设业务需求文档,注册公司流程步骤2019独角兽企业重金招聘Python工程师标准 ECMAScript 6#xff08;以下简称ES6#xff09;是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的#xff0c;所以又称ECMAScript 2015。 也就是说#xff0c;ES6就是ES2015。 虽然目前并不是所有浏… 2019独角兽企业重金招聘Python工程师标准 ECMAScript 6以下简称ES6是JavaScript语言的下一代标准。因为当前版本的ES6是在2015年发布的所以又称ECMAScript 2015。 也就是说ES6就是ES2015。 虽然目前并不是所有浏览器都能兼容ES6全部特性但越来越多的程序员在实际项目当中已经开始使用ES6了。所以就算你现在不打算使用ES6但为了看懂别人的你也该懂点ES6的语法了... 在我们正式讲解ES6语法之前我们得先了解下Babel。Babel Babel是一个广泛使用的ES6转码器可以将ES6代码转为ES5代码从而在现有环境执行。大家可以选择自己习惯的工具来使用使用Babel具体过程可直接在Babel官网查看 最常用的ES6特性 let, const, class, extends, super, arrow functions, template string, destructuring, default, rest arguments 这些是ES6最常用的几个语法基本上学会它们我们就可以走遍天下都不怕啦我会用最通俗易懂的语言和例子来讲解它们保证一看就懂一学就会。 let, const 这两个的用途与var类似都是用来声明变量的但在实际运用中他俩都有各自的特殊用途。 首先来看下面这个例子 var name zachwhile (true) {var name obamaconsole.log(name) //obamabreak }console.log(name) //obama 使用var 两次输出都是obama这是因为ES5只有全局作用域和函数作用域没有块级作用域这带来很多不合理的场景。第一种场景就是你现在看到的内层变量覆盖外层变量。而let则实际上为JavaScript新增了块级作用域。用它所声明的变量只在let命令所在的代码块内有效。 let name zachwhile (true) {let name obamaconsole.log(name) //obamabreak }console.log(name) //zach 另外一个var带来的不合理场景就是用来计数的循环变量泄露为全局变量看下面的例子 var a []; for (var i 0; i 10; i) {a[i] function () {console.log(i);}; } a[6](); // 10 上面代码中变量i是var声明的在全局范围内都有效。所以每一次循环新的i值都会覆盖旧值导致最后输出的是最后一轮的i的值。而使用let则不会出现这个问题。 var a []; for (let i 0; i 10; i) {a[i] function () {console.log(i);}; } a[6](); // 6再来看一个更常见的例子了解下如果不用ES6而用闭包如何解决这个问题。 var clickBoxs document.querySelectorAll(.clickBox) for (var i 0; i clickBoxs.length; i){clickBoxs[i].onclick function(){console.log(i)} } 我们本来希望的是点击不同的clickBox显示不同的i但事实是无论我们点击哪个clickBox输出的都是5。下面我们来看下如何用闭包搞定它。 function iteratorFactory(i){var onclick function(e){console.log(i)}return onclick; } var clickBoxs document.querySelectorAll(.clickBox) for (var i 0; i clickBoxs.length; i){clickBoxs[i].onclick iteratorFactory(i) }const也用来声明变量但是声明的是常量。一旦声明常量的值就不能改变。 const PI Math.PIPI 23 //Module build failed: SyntaxError: /es6/app.js: PI is read-only 当我们尝试去改变用const声明的常量时浏览器就会报错。 const有一个很好的应用场景就是当我们引用第三方库的时声明的变量用const来声明可以避免未来不小心重命名而导致出现bug const monent require(moment)class, extends, super 这三个特性涉及了ES5中最令人头疼的的几个部分原型、构造函数继承...你还在为它们复杂难懂的语法而烦恼吗你还在为指针到底指向哪里而纠结万分吗 有了ES6我们不再烦恼 ES6提供了更接近传统语言的写法引入了Class类这个概念。新的class写法让对象原型的写法更加清晰、更像面向对象编程的语法也更加通俗易懂。 class Animal {constructor(){this.type animal}says(say){console.log(this.type says say)} }let animal new Animal() animal.says(hello) //animal says helloclass Cat extends Animal {constructor(){super()this.type cat} }let cat new Cat() cat.says(hello) //cat says hello 上面代码首先用class定义了一个“类”可以看到里面有一个constructor方法这就是构造方法而this关键字则代表实例对象。简单地说constructor内定义的方法和属性是实例对象自己的而constructor外定义的方法和属性则是所有实例对象可以共享的。 Class之间可以通过extends关键字实现继承这比ES5的通过修改原型链实现继承要清晰和方便很多。上面定义了一个Cat类该类通过extends关键字继承了Animal类的所有属性和方法。 super关键字它指代父类的实例即父类的this对象。子类必须在constructor方法中调用super方法否则新建实例时会报错。这是因为子类没有自己的this对象而是继承父类的this对象然后对其进行加工。如果不调用super方法子类就得不到this对象。 ES6的继承机制实质是先创造父类的实例对象this所以必须先调用super方法然后再用子类的构造函数修改this。 P.S 如果你写react的话就会发现以上三个东西在最新版React中出现得很多。创建的每个component都是一个继承React.Component的类。详见react文档 arrow function 这个恐怕是ES6最最常用的一个新特性了用它来写function比原来的写法要简洁清晰很多: function(i){ return i 1; } //ES5 (i) i 1 //ES6 简直是简单的不像话对吧... 如果方程比较复杂则需要用{}把代码包起来 function(x, y) { x;y--;return x y; } (x, y) {x; y--; return xy} 除了看上去更简洁以外arrow function还有一项超级无敌的功能 长期以来JavaScript语言的this对象一直是一个令人头痛的问题在对象方法中使用this必须非常小心。例如 class Animal {constructor(){this.type animal}says(say){setTimeout(function(){console.log(this.type says say)}, 1000)} }var animal new Animal()animal.says(hi) //undefined says hi 运行上面的代码会报错这是因为setTimeout中的this指向的是全局对象。所以为了让它能够正确的运行传统的解决方法有两种 第一种是将this传给self,再用self来指代this says(say){var self this;setTimeout(function(){console.log(self.type says say)}, 1000) 2.第二种方法是用bind(this),即 says(say){setTimeout(function(){console.log(this.type says say)}.bind(this), 1000) 但现在我们有了箭头函数就不需要这么麻烦了 class Animal {constructor(){this.type animal}says(say){setTimeout( () {console.log(this.type says say)}, 1000)} }var animal new Animal()animal.says(hi) //animal says hi当我们使用箭头函数时函数体内的this对象就是定义时所在的对象而不是使用时所在的对象。 并不是因为箭头函数内部有绑定this的机制实际原因是箭头函数根本没有自己的this它的this是继承外面的因此内部的this就是外层代码块的this。 template string 这个东西也是非常有用当我们要插入大段的html内容到文档中时传统的写法非常麻烦所以之前我们通常会引用一些模板工具库比如mustache等等。 大家可以先看下面一段代码 $(#result).append(There are b basket.count /b items in your basket, em basket.onSale /em are on sale! );我们要用一堆的号来连接文本与变量而使用ES6的新特性模板字符串后我们可以直接这么来写 $(#result).append(There are b${basket.count}/b itemsin your basket, em${basket.onSale}/emare on sale! );用反引号\来标识起始用${}来引用变量而且所有的空格和缩进都会被保留在输出之中是不是非常爽 React Router从第1.0.3版开始也使用ES6语法了比如这个例子 Link to{/taco/${taco.name}}{taco.name}/LinkReact Router destructuring ES6允许按照一定模式从数组和对象中提取值对变量进行赋值这被称为解构Destructuring。 看下面的例子 let cat ken let dog lili let zoo {cat: cat, dog: dog} console.log(zoo) //Object {cat: ken, dog: lili} 用ES6完全可以像下面这么写 let cat ken let dog lili let zoo {cat, dog} console.log(zoo) //Object {cat: ken, dog: lili} 反过来可以这么写 let dog {type: animal, many: 2} let { type, many} dog console.log(type, many) //animal 2default, rest default很简单意思就是默认值。大家可以看下面的例子调用animal()方法时忘了传参数传统的做法就是加上这一句type type || cat 来指定默认值。 function animal(type){type type || cat console.log(type) } animal() 如果用ES6我们而已直接这么写 function animal(type cat){console.log(type) } animal()最后一个rest语法也很简单直接看例子 function animals(...types){console.log(types) } animals(cat, dog, fish) //[cat, dog, fish] 而如果不用ES6的话我们则得使用ES5的arguments。 总结 以上就是ES6最常用的一些语法可以说这20%的语法在ES6的日常使用中占了80%... 转载于:https://my.oschina.net/u/3460260/blog/1587187
http://wiki.neutronadmin.com/news/162095/

相关文章:

  • 重庆最大的本地交流网站制作销售网站有哪些问题
  • 响应式网站布局实例搜索引擎优化百度百科
  • 小说网站首页模板seo优化专家
  • 集团网站WordPress图片分享社区
  • 东莞做网站 南城石佳坤和建设 网站
  • 网站建设 尚品中国WordPress注册邮件美化
  • 温州网站优化价格惠州建站公司
  • 网站首页怎么设计深圳seo优化公司哪家好
  • 洛阳自助建站长春seo网站排名
  • 临沂网站建江门市蓬江区最新发布
  • 门户类网站模板网站建设网上商城
  • 来个网站吧好人一生平安2022网站跟系统的区别是
  • wordpress搭建外贸网站网页制作动画怎么做
  • jsp做门户网站网站建设 会议主持稿
  • 微网站 网页早晨设计 做网站设计吗
  • 网站模板预览长沙做手机网站
  • 网站百度排名丽水房产网站建设
  • 网页制作与网站建设从入门到精通 下载wordpress好看的背景图片
  • 怎么做彩票平台网站做电影网站的服务器
  • 企业黄页平台西安百度seo排名软件
  • 网站关键词排名手机优化软件中小企业公司
  • 唐山网站怎么做seo新像素ui设计官网
  • 浙江华企网站做的咋样企业注册号怎么查询
  • 迅速上排名网站优化专门做岛屿的网站
  • 新开传奇网站发布站建设网站五个步骤
  • 做网站 转行网站seo外包技术资源
  • 网站建设名词做外贸网站服务
  • 深圳市建设科技促进中心网站装修设计网站排行
  • 有哪些做数据分析的网站怎么自己做一个网址
  • 杭州网站建设费用价格为什么网站开发成本高