es6(1)
1.var let const
var---变量,重复定义不报错,没有块级作用域,不能限制修改
if(12>5){
var a=12;
}
alert(a); //弹出12 let---变量,重复定义报错,有块级作用域,可以限制修改 if(12>5){
let a=12;
}
alert(a); //报错,let有块级作用域的概念,只在if代码段内有效 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
window.onload=function(){
var aBtn=document.getElementsByTagName('input'); for(let i=0;i<aBtn.length;i++){
aBtn[i].onclick=function(){
alert(i);
}
}
}
</script>
</head>
<body>
<input type="button" name="" value="a">
<input type="button" name="" value="b">
<input type="button" name="" value="c">
</body>
</html>
三个按钮分别输出0,1,2 const---常量,重复定义报错,有块级作用域,可以限制修改 const a=12;
a=5;
alert(a); //报错,const是常量,不能修改
2.箭头函数
只有一个参数,()可以省
只有一个语句,还是return,{}可以省 一、把function去掉,加上=>
function (a,b,c){
//代码
} (a,b,c)=>{
//代码
}
二、示例
function show(fn){
fn(12,5);
} show((a,b)=>{
alert(a*b);
})
三、只有一个参数,()可以省
let show=a=>{
alert(a)
}
show(5);
四、只有一个语句,还是return,{}可以省
let sum=(a,b)=>a+b;
alert(sum(1,2));
五、实现排序
let arr=[2,5,4,1,9,6];
arr.sort((a,b)=>a-b);
alert(arr);
3.参数扩展(...arg)
function show(a,b,...arg){
alert(arg);
} show(1,2,3,4,5,6); ///3,4,5,6 注意:...arg只能放在参数的最后一个
function show(a,b,...arg,c){
alert(arg);
} show(1,2,3,4,5,6); //报错,...arg没有放在参数的最后一个
4.展开数组
一、采用...arg,数组展开为1,2,3
let arr=[1,2,3];
function sum(a,b,c){
alert(a+b+c);
} sum(...arr); //6
二、展开数组,并连接数组
let arr1=[1,2,3];
let arr2=[4,5,6]; let arr=[...arr1,...arr2];
alert(arr); //1,2,3,4,5,6
5.数组map方法(映射)
let arr=[1,2,3,4];
let result=arr.map(item=>item*2);
alert(result); //2,4,6,8
6.数组filter方法(过滤)
let arr=[1,2,3,4,5,6,7,8];
let result=arr.filter(item=>item%2);
alert(result); //1,3,5,7
7.数组forEach方法(遍历)
let arr=[1,2,3,4,5,6,7,8];
let result=arr.forEach((item,index)=>{
alert(`第${index+1}是${item}`)
})
8.数组reduce方法(汇总)
//求平均数
let arr=[1,2,3,4,5,6];
let result=arr.reduce((tamp,item,index)=>{
if(index<arr.length-1){
return tamp+item;
}else{
return (tamp+item)/arr.length;
}
})
alert(result);
9.字符串模板(``)
//可以换行
let str=`ab
c`;
alert(str);
10.面向对象(class、super、extends)
class User{
constructor(name,pass){
this.name=name;
this.pass=pass;
} login(){
alert('登录成功')
}
} class VIPUser extends User{
constructor(name,pass,level){
super(name,pass);
this.level=level;
} download(){
alert('下载成功')
}
} let p=new VIPUser('blue',123,8);
p.login();
p.download();
alert(p.name);
alert(p.pass);
alert(p.level);
11.解构赋值
//数组,一一对应
let [a,b,c]=[1,2,3];
alert(a);
alert(b);
alert(c);
//对象,一一对应
let {a,b,c}={'a':'1','b':'2','c':'3'};
alert(a);
alert(b);
alert(c);
12.promise
一、
let p=new Promise(function(resolve,reject){
$.ajax({
url:'data/1.txt',
dataType:'json',
success(arr){
resolve(arr)
},
error(err){
reject(err)
}
})
}) p.then(arr=>{
alert('成功了'+arr)
},err=>{
alert('失败了')
})
二、
let p1=new Promise(function(resolve,reject){
$.ajax({
url:'data/1.txt',
dataType:"json",
success(arr){
resolve(arr)
},
error(err){
reject(err)
}
})
}); let p2=new Promise(function(resolve,reject){
$.ajax({
url:'data/2.txt',
dataType:'json',
success(arr){
resolve(arr)
},
erros(err){
reject(err)
}
})
}); let p3=new Promise(function(resolve,reject){
$.ajax({
url:'data/3.txt',
dataType:'json',
success(arr){
resolve(arr)
},
error(err){
reject(err)
}
})
}); Promise.all([p1,p2,p3]).then(function(arr){
let [r1,r2,r3]=arr;
alert(r1);
alert(r2);
alert(r3);
},function(){
alert('失败了')
})
1.var let const var---变量,重复定义不报错,没有块级作用域,不能限制修改 if(12>5){ var a=12; } alert(a); //弹出12
let---变量,重复定义报错,有块级作用域,可以限制修改
if(12>5){ let a=12; } alert(a); //报错,let有块级作用域的概念,只在if代码段内有效
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script> window.onload=function(){ var aBtn=document.getElementsByTagName('input');
for(let i=0;i<aBtn.length;i++){ aBtn[i].onclick=function(){ alert(i); } } } </script> </head> <body> <input type="button" name="" value="a"> <input type="button" name="" value="b"> <input type="button" name="" value="c"> </body> </html> 三个按钮分别输出0,1,2
const---常量,重复定义报错,有块级作用域,可以限制修改
const a=12; a=5; alert(a); //报错,const是常量,不能修改 2.箭头函数 只有一个参数,()可以省 只有一个语句,还是return,{}可以省
一、把function去掉,加上=> function (a,b,c){ //代码 }
(a,b,c)=>{ //代码 } 二、示例 function show(fn){ fn(12,5); }
show((a,b)=>{ alert(a*b); }) 三、只有一个参数,()可以省 let show=a=>{ alert(a) } show(5); 四、只有一个语句,还是return,{}可以省 let sum=(a,b)=>a+b; alert(sum(1,2)); 五、实现排序 let arr=[2,5,4,1,9,6]; arr.sort((a,b)=>a-b); alert(arr); 3.参数扩展(...arg) function show(a,b,...arg){ alert(arg); }
show(1,2,3,4,5,6); ///3,4,5,6
注意:...arg只能放在参数的最后一个 function show(a,b,...arg,c){ alert(arg); }
show(1,2,3,4,5,6); //报错,...arg没有放在参数的最后一个 4.展开数组 一、采用...arg,数组展开为1,2,3 let arr=[1,2,3]; function sum(a,b,c){ alert(a+b+c); }
sum(...arr); //6 二、展开数组,并连接数组 let arr1=[1,2,3]; let arr2=[4,5,6];
let arr=[...arr1,...arr2]; alert(arr); //1,2,3,4,5,6 5.数组map方法(映射) let arr=[1,2,3,4]; let result=arr.map(item=>item*2); alert(result); //2,4,6,8 6.数组filter方法(过滤) let arr=[1,2,3,4,5,6,7,8]; let result=arr.filter(item=>item%2); alert(result); //1,3,5,7 7.数组forEach方法(遍历) let arr=[1,2,3,4,5,6,7,8]; let result=arr.forEach((item,index)=>{ alert(`第${index+1}是${item}`) }) 8.数组reduce方法(汇总) //求平均数 let arr=[1,2,3,4,5,6]; let result=arr.reduce((tamp,item,index)=>{ if(index<arr.length-1){ return tamp+item; }else{ return (tamp+item)/arr.length; } }) alert(result); 9.字符串模板(``) //可以换行 let str=`ab c`; alert(str); 10.面向对象(class、super、extends) class User{ constructor(name,pass){ this.name=name; this.pass=pass; }
login(){ alert('登录成功') } }
class VIPUser extends User{ constructor(name,pass,level){ super(name,pass); this.level=level; }
download(){ alert('下载成功') } }
let p=new VIPUser('blue',123,8); p.login(); p.download(); alert(p.name); alert(p.pass); alert(p.level); 11.解构赋值 //数组,一一对应 let [a,b,c]=[1,2,3]; alert(a); alert(b); alert(c); //对象,一一对应 let {a,b,c}={'a':'1','b':'2','c':'3'}; alert(a); alert(b); alert(c); 12.promise 一、 let p=new Promise(function(resolve,reject){ $.ajax({ url:'data/1.txt', dataType:'json', success(arr){ resolve(arr) }, error(err){ reject(err) } }) })
p.then(arr=>{ alert('成功了'+arr) },err=>{ alert('失败了') }) 二、 let p1=new Promise(function(resolve,reject){ $.ajax({ url:'data/1.txt', dataType:"json", success(arr){ resolve(arr) }, error(err){ reject(err) } }) });
let p2=new Promise(function(resolve,reject){ $.ajax({ url:'data/2.txt', dataType:'json', success(arr){ resolve(arr) }, erros(err){ reject(err) } }) });
let p3=new Promise(function(resolve,reject){ $.ajax({ url:'data/3.txt', dataType:'json', success(arr){ resolve(arr) }, error(err){ reject(err) } }) });
Promise.all([p1,p2,p3]).then(function(arr){ let [r1,r2,r3]=arr; alert(r1); alert(r2); alert(r3); },function(){ alert('失败了') })
es6(1)的更多相关文章
- ES6模块import细节
写在前面,目前浏览器对ES6的import支持还不是很好,需要用bable转译. ES6引入外部模块分两种情况: 1.导入外部的变量或函数等: import {firstName, lastName, ...
- webpack+react+redux+es6开发模式
一.预备知识 node, npm, react, redux, es6, webpack 二.学习资源 ECMAScript 6入门 React和Redux的连接react-redux Redux 入 ...
- ES6的一些常用特性
由于公司的前端业务全部基于ES6开发,于是给自己开个小灶补补ES6的一些常用特性.原来打算花两天学习ES6的,结果花了3天才勉强过了一遍阮老师的ES6标准入门(水好深,ES6没学好ES7又来了...) ...
- ES6(块级作用域)
我们都知道在javascript里是没有块级作用域的,而ES6添加了块级作用域,块级作用域能带来什么好处呢?为什么会添加这个功能呢?那就得了解ES5没有块级作用域时出现了哪些问题. ES5在没有块级作 ...
- es6小白学习笔记(一)
1.let和const命令 1.es6新增了let和const命令,与var用法类似,但它声明的变量只在let所在的代码块内有效(块级作用域,es5只有全局和函数作用域) { let a = 1; v ...
- ES6之变量常量字符串数值
ECMAScript 6 是 JavaScript 语言的最新一代标准,当前标准已于 2015 年 6 月正式发布,故又称 ECMAScript 2015. ES6对数据类型进行了一些扩展 在js中使 ...
- ES6之let命令详解
let与块级作用域 { var foo='foo'; let bar='bar'; } console.log(foo,'var'); //foo varconsole.log(bar ,'bar') ...
- ES6 箭头函数中的 this?你可能想多了(翻译)
箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点——“=> 就是一个新的 function”. ...
- ES6+ 现在就用系列(二):let 命令
系列目录 ES6+ 现在就用系列(一):为什么使用ES6+ ES6+ 现在就用系列(二):let 命令 ES6+ 现在就用系列(三):const 命令 ES6+ 现在就用系列(四):箭头函数 => ...
- ES6+ 现在就用系列(一):为什么使用ES6+
系列目录 ES6+ 现在就用系列(一):为什么使用ES6+ ES6+ 现在就用系列(二):let 命令 ES6+ 现在就用系列(三):const 命令 ES6+ 现在就用系列(四):箭头函数 => ...
随机推荐
- SQL SERVER 查看表说明,字段属性
查询表字段属性,说明等: 1 SELECT 2 表名=case when a.colorder=1 then d.name else '' end, 3 表说明=case when a.colorde ...
- Mysql基础篇(三)之多表查询
一. 多表关系 一对多(多对一) 多对一 一对一 1. 一对多 (1). 案例:部门与员工的关系 (2). 关系:一个部门对应多个员工,一个员工对应一个部门 (3). 实现:在多的一方建立外建,指向一 ...
- BeanDefinitionStoreException: Failed to read candidate component class
ssm 整合时出现问题 org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate ...
- 快速实现 CDN 直播
功能简介 ZEGO Express SDK 支持推流到 CDN(Content Delivery Network,内容分发网络),包括转推 CDN 和直推 CDN 两种功能.开发者基于该功能可打通 R ...
- 大语言模型中一个调皮的EOS token
背景 最近需要做一个微调的培训,所以不可避免地需要上手一下相关的微调,而受限于机器资源,暂时没法做全参数微调,所以就尝试了目前比较火的两种高效微调方式,分别是PTuning和LoRA.模型选择得自然是 ...
- 在HTML中引入React和JSX
前言 Vue 可以非常方便地与 Pure HTML 结合,代替 jQuery 的功能,有一次遇到类似的场景时,我就想 React 能不能也以这种方式接入 HTML 网页,从而提高开发效率. 结果当然是 ...
- .Net 一套接口多实现
.Net 一套接口多实现 接口(interface)可理解为规范.标准.协议.接口是用来约束各方都在同一组规范下工作. 电脑外设USB接口,各个品牌商家生产的U盘.鼠标都能够被电脑主板识别并工作,这是 ...
- 2021-6-17 plc连接
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 三个编程思想:面向对象编程、面向接口编程、面向过程编程【概念解析系列_1】【C# 基础】
〇.前言 对于 .Net 中的编程思想还是十分重要的,也是编码出高效的程序的基础! 在使用之前了解其本质,那么用起来就游刃有余.下面来简单对比下三个编程思想,看下它们都是什么,它们之间又有什么关系. ...
- CN2 GIA
搬瓦攻方案库存监控页面 https://stock.bwg.net/ https://bwh81.net/ https://bandwagonhost.com/ https://teddysun.c ...