JS的ES6的基础语法
JS的ES6
1.let
let age = 12;
(1). 作用:
与var类似, 用于声明一个变量
(2). 特点:
在块作用域内有效
不能重复声明
不会预处理, 不存在提升
(3). 应用:
循环遍历加监听
使用let取代var是趋势
2.const
const sex = '男';
(1). 作用:
定义一个常量
(2). 特点:
不能修改
其它特点同let
(3). 应用:
保存不用改变的数据
3.解构赋值
(1)对象的解构赋值:从对象的属性中取到想要的属性值
let obj = {name : 'kobe', age : 39};
//对象的解构赋值
let {name,age,xxx} = obj; //定义的变量要与属性key相同,使用大括号{}
console.log(age,name,xxx); //39 "kobe" undefined
(2)数组的解构赋值
let arr = ['abc', 23, true];
let [, b, c, d] = arr; //使用中括号[],可以使用占位空的,还是按顺序获得数组下标对应的值
console.log(b, c, d); //23 true undefined
用处:简化传参
let obj = {name : 'kobe', age : 39};
function person1({name, age}) {
console.log(name, age);
}
person1(obj);
4.模版字符串
模板字符串必须用 `` 包含,变量用${xxx}
let obj = {
name : 'anverson',
age : 41
};
console.log('我叫:' + obj.name + ', 我的年龄是:' + obj.age); //我叫:anverson, 我的年龄是:41
console.log(`我叫:${obj.name}, 我的年龄是:${obj.age}`); //我叫:anverson, 我的年龄是:41
5.简写的对象写法:
省略同名的属性
省略方法function以及前面的:
let x = 3;
let y = 5;
//普通额写法
// let obj = {
// x : x,
// y : y,
// getPoint : function () {
// return this.x + this.y
// }
// };
//简化的写法
let obj = {
x, //为外部的x
y, //为外部的y
getPoint(){ //省略:function
return this.x
}
};
console.log(obj, obj.getPoint()); //Object 3
6.三点运算符
又称:rest参数
作用:用来取代arguments 但比arguments灵活
限制:
只能是最后部分形参参数。
只能遍历数组,不能遍历对象。
//作为形参,是真实的数组可以遍历
function fun(...values) {
console.log(arguments);
// arguments.forEach(function (item, index) {
// console.log(item, index); //报错,arguments是伪数组不能遍历
// });
console.log(values);
values.forEach(function (item, index) {
console.log(item, index);
})
}
fun(1,2,3); //将一个数组插入到另一个数组
let arr = [2,3,4,5,6];
let arr1 = ['abc',...arr, 'fg'];
console.log(arr1); //'abc' 2 3 4 5 6 'fg'
7.形参的默认值
作用:当不传入参数的时候默认使用形参里的默认值
//定义一个点的坐标
function Point(x=12, y=12) {
this.x = x;
this.y = y;
}
let point = new Point(25, 36);
console.log(point); //25 36
let point2 = new Point();
console.log(point2); // 12 12
8.箭头函数
又称:lambda表达式[和Java的差不多,但符号是=>]
//1.普通写法
let fun = function () {
console.log('fun()');
};
fun();
//2.没有形参,并且函数体只有一条语句
let fun1 = () => console.log('fun1()');
fun1();
console.log(fun1());
//3.一个形参,并且函数体只有一条语句
let fun2 = x => x;
console.log(fun2(5));
//4.形参是一个以上
let fun3 = (x, y) => x + y;
console.log(fun3(25, 39)); // //5.函数体有多条语句
let fun4 = (x, y) => {
console.log(x, y);
return x + y;
};
console.log(fun4(34, 48)); //
特殊点在this:
- 如果有,外层函数的this就是内部箭头函数的this.
- 如果没有,则this是window。
箭头函数在定义时就确定了!!!使用call,apply,bind都不能绑定this。
一般函数得看谁调用他,this就是谁,可以使用call,apply,bind。
<button id="btn">测试箭头函数this_1</button>
<button id="btn2">测试箭头函数this_2</button>
setTimeout(() => {
console.log(this); //window
}, 1000)
let btn = document.getElementById('btn');
//没有箭头函数
btn.onclick = function () {
console.log(this); //btn
};
//箭头函数
let btn2 = document.getElementById('btn2');
let obj = {
name: 'kobe',
age: 39,
getName: () => {
btn2.onclick = () => {
console.log(this);
};
}
};
obj.getName(); //window
function Person() {
this.obj = {
showThis: () => {
console.log(this);
}
}
}
let fun5 = new Person();
fun5.obj.showThis(); //Person
var name = "windowname";
var oo = {
name:"outname",
ll :{
inname : "inname",
f : () => console.log(this),
ff(){
console.log(this);
}
}
} var obj4 = {
name : "name"
} oo.ll.f(); //window
oo.ll.ff(); //调用它的ll ==> Object {inname: "inname"}
oo.ll.ff.call(obj4); //obj4 ==>Object {name: "name"}
oo.ll.f.call(obj4); //绑定不了还是window
JS的ES6的基础语法的更多相关文章
- 关于JS脚本语言的基础语法
JS脚本语言的基础语法:输出语法 alert("警告!"); confirm("确定吗?"); prompt("请输入密码");为弱 ...
- js进阶 10-2 JQuery基础语法是什么
js进阶 10-2 JQuery基础语法是什么 一.总结 一句话总结: 1.jquery语法超级简单:基础语法是:$(selector).action() 2.jquery选择的时候是带了引号的,肯定 ...
- 9.12 开课第9天 (JS脚本语音:基础语法、语句)
全称JavaScript 网页里面使用的脚本语音 非常强大的语言 基础语法:1.注释语法 单行注释// 多行注释/**/ 2.输出语法 alert(信息); 弹出信息 ...
- 前端学习笔记--js概述与基础语法、变量、数据类型、运算符与表达式
本篇记录js的概述与基础语法.变量.数据类型.运算符与表达式 1.概述与基础语法 2.变量 举例: 3.数据类型 4.运算符与表达式
- WebStorm ES6 语法支持设置和ES6语法的JS文件编译为ES5语法文件
ECMAScript 6是JavaScript语言的下一代标准,已经在2015年6月正式发布了.Mozilla公司将在这个标准的基础上,推出JavaScript 2.0.ES6的目标,是使得JavaS ...
- JS基础语法(二)
目录 JavaScript基础语法(二) 八. 函数 1. 函数的概念 2. 函数的使用 声明函数 调用函数 3. 函数的封装 4. 函数的参数 函数的参数匹配问题 5. 函数返回值 6. argum ...
- 9.12/ css3拓展、js基础语法、程序基本知识、数据类型、运算符表达方式、语句知识点
css3拓展: <display:none> 将某个元素隐藏 <visibility:hidden> 也是将某个元素隐藏 <display:block&g ...
- 让 Node.js 支持 ES6 的语法
为了让 Node.js 支持 ES6 的语法, 需要使用 Babel. 安装 es-checker 在使用 Babel 之前 , 我们先检测一下当前 node 对 es6 的支持情况. 在命令行下执行 ...
- JavaScript进阶 - 第2章 你要懂的规则(JS基础语法)
第2章 你要懂的规则(JS基础语法) 2-1什么是变量 什么是变量? 从字面上看,变量是可变的量:从编程角度讲,变量是用于存储某种/某些数值的存储器.我们可以把变量看做一个盒子,盒子用来存放物品,物品 ...
随机推荐
- jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jquery筛选方法
jQuery---jq基础了解(语法,特性),JQ和JS的区别对比,JQ和JS相互转换,Jquery的选择器(基础选择器,层级选择器,属性选择器),Jquery的筛选器(基本筛选器,表单筛选器),Jq ...
- Java打印日历表
今天来吐槽一下Java的Calendar类的使用问题,反正我是弄了半天. 首先是,遇到一个问题,输入年份和月份,需要打印这个月的日历,网上有不少代码,但我用了几个感觉都不是很靠谱. 然后经过一番探索, ...
- Javascript/js 的浅拷贝与深拷贝(复制)学习随笔
js变量的数据类型值分基本类型值和引用类型值. 在ES6(ECMAScript6)以前,基本数据类型包括String.Number.Boolean.Undefined.Null. 基本类型值的复制(拷 ...
- linux ssh scp免密码
1.首先登入一台linux服务器做为母机(即登入其他linux系统用这台做为入口):执行一行命令生成key文件:ssh-keygen -t rsa 2.在母机上,进入/root/.ssh目录,找到id ...
- elasticsearch Terms Query 实现类似于sql in查询
本文demo基于elasticsearch 5.1.1, 项目中使用的还是较早的版本 例如 import com.alibaba.fastjson.JSON; import org.elastics ...
- Docker11-实战-部署多套环境
目录 创建本地挂载目录 准备一个简单的java web项目 启动Tomcat容器:通过挂载不同的代码目录和运行端口来区分 案例:修改测试环境代码 创建本地挂载目录 在宿主host主机上面创建两个目录, ...
- Linux下源码编译php7
1.安装依赖包 yum install -y gcc gcc-c++ make zlib zlib-devel pcre pcre-devel libjpeg libjpeg-devel libpng ...
- Java面向对象 练习(类、对象、方法)
知识点:构造方法.继承.方法重载.方法重写 一. 定义一个点(Point)类,用来表示三维空间中的点(有三个坐标),要求如下: 1.可以生成具有特定坐标的点对象(构造方法): 2.提供可以设置三个坐标 ...
- golang代理使用proxy.cn
golang代理使用proxy.cn,参考:https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md 使用方法: $ expo ...
- Flask 开启多进程或多线程
2018-07-15 23:31:20 yang9315 阅读数 7703更多 分类专栏: python 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接 ...