ES6的常见语法!!

let : 声明变量
不存在变量提前
拥有局部作用域 (只要有{}出现 则只在该{}范围内生效)
(而var只在函数内会产生作用域范围)
不能重复声明

const : 声明常量(常量名从规范上来将 最好所有字母大写)
常量从声明之后 不能再二次赋值 (值无法被改变,只读)
不存在变量提前
不能重复声明
拥有局部作用域

箭头函数:
let abc = (a,b) => { return a + b }
let abc1 = (a,b) => a + b
let abc2 = a => { return a*2 }
let abc3 = a => a*2
箭头函数的this指向定义者(或者说时上下文环境)
不能当做构造函数 (不能实例化)
箭头函数没有 arguements (或者说指向上下文环境)

解构赋值
对象:
let obj = {
name : "zhuiszhu",
age : 18
}

let {age,name} = obj //属性名必须一样 但顺序没有要求

指定默认值:
let {height=188} = obj

给个别名
let {name:nm} = obj

数组
let arr = [1,2,3,4]

let [one,two,four,three] = arr //数组解构 顺序有要求 命名无要求

默认值:
let [one,two,four,three,five=5] //给默认值

解构参数
let obj = {
name : ...,
age : ...
}

function sayHello(obj){
}

确定形参obj为指定对象时 可对其解构
function sayHello({name}){
console.log(name)
}
给别名和默认值于解构赋值一样
注意 在使用箭头函数和解构参数时 必须加上()
let a = obj => {}
let b = ({name}) => {}
以下写法不被允许
let c = {name} => {}

形参默认值
function sayHello(name,age=18){}

展开符
let obj = {
name : "zhuiszhu",
age : 18
}

let newObj = {
...obj,
height : 188
}

newObj将拥有所有obj的属性和方法

类(注意 类名在行业规范类 首字母均大写)
class Xxxx {}
类的继承
class Student extends Man {}

对象的属性的语法糖(简写)
let name = "abc"

let obj = {name:name} ===> let obj = {name}

let obj1 = {
sayHello : function(){

}
}

===>

let obj1 = {
sayHello(){//该种简写方式代表当前函数为普通函数 this依旧和function的this指向相同 并不是箭头函数的上下文环境

}
}

字符串模板
let name = "zhuiszhu"

let text = "hello " + name + "!"

let text1 = `hello ${name}!`

typescript语法(非es6语法)
接口(接口名也最好首字母大写)
interface Yyyy{
name //定义实现该接口的类所必须拥有的属性名
int() //定义实现该结构的类所必须拥有的方法名
}

定义一个类 并实现接口
class Student implements Man{}

原文地址:https://www.cnblogs.com/lishixiang-007/p/11337300.html

时间: 2024-10-09 18:29:41

ES6的常见语法!!的相关文章

[js高手之路] es6系列教程 - new.target属性与es5改造es6的类语法

es5的构造函数前面如果不用new调用,this指向window,对象的属性就得不到值了,所以以前我们都要在构造函数中通过判断this是否使用了new关键字来确保普通的函数调用方式都能让对象复制到属性 1 function Person( uName ){ 2 if ( this instanceof Person ) { 3 this.userName = uName; 4 }else { 5 return new Person( uName ); 6 } 7 } 8 Person.proto

Markdown 常见语法记录

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面. 简单的来说,Markdown就是用"标记符号"表示"格式".Markdown语法标签与HTML语法标签是一一对应的,比如Markdown的二级标题标签##就对应着HTML中的< h2>-< /h2>标记,而且Markdown是兼容HTML语法的,如果你比较喜欢 HTML 的< a >或 < img >

[C/C++不常见语法特性]_[位域的使用细节]

场景: 1.位域作为一个控制空间大小的语法特性其实是有它自己的用武之地的,比如网络通讯的协议定制,使用位域为1来严格限制bool值为0,1等等. 2.它有一些细节需要注意, 第一: 位域的大小是值的类型的整数倍,不足整数倍的补全.如unsigned short的大小是16位,那么如果总值17位的话会自动补全到16*2=32位. 第二: 赋值当然需要位运算符或者不超过它的最大值的整数. 代码: #include <stdlib.h> #include <assert.h> #incl

PHP. 01. C/S架构、B/S架构、服务器类型、服务器软件、HTTP协议/服务器、数据库、服务器web开发、PHP简介/常见语法、PHPheader()、 PHP_POST/GET数据获取和错误处理

C/S架构 Client/Server 指客户端,服务器 架构的意思 优点:性能性高:可将一部分的计算工作放在客户端上,服务器只需处理出局即可   洁面炫酷,可使用更多系统提供的效果 缺点:更新软件需版本同步 不同设备访问:必须安装了客户端才能登陆 B/S架构 Browser /Server 指浏览器, 服务器.是WEB兴起后的一种结构 优点:更新简洁,对用户来说只需刷新浏览器即可   多设备同步:只要能够使用浏览器即可登录 缺点:性能较低:当时随着硬件性能的提升,这个差距在缩小   浏览器兼容

amd cmd commonjs 模块规范 和 es6 的 module 语法

js的模块化 在前端开发的原始时期,只要在script标签中嵌入js代码就能实现一些基本的交互效果,但是随着时代的进步.js扮演的角色变得重要起来,js应用的场景页越来越复杂,.然而,js都没有类的概念,更不用说模块了. 为什么要有模块化 当一个项目变得复杂的时候,会出现问题,比如:命名冲突:开发中重复命名,导致命名冲突.文件依赖:项目开发中,依赖的js文件,引入遗漏,引入顺序错误. 使用模块化开发可以避免类似情况,而且利于项目的维护:提升开发效率:代码方便重用,能直接引入,避免重复开发.方便后

服务端web开发:PHP简介以及常见语法

服务端web开发 在讲解什么是服务端开发之前,让我们先思考几个问题 网站访问: 当我们做好了.html的网站,如何让别人(朋友,用户)可以访问到呢? 使用U盘拷贝,QQ发送文件等直接将文件共享的方式?---不灵活 将网站放在服务器上,让用户通过网址访问?---绝大多数网站的做法 网站内容更新: 如果用户每次访问我们的网站看到的内容都是一样的,在最初的新鲜劲过去以后估计就再也不想访问我们的网站了o(╯□╰)o,那么如何去更新网站的内容呢? 当有内容,图片,或者界面需要更新是,直接修改.html文件

第79篇 Vue第一篇 ES6的常用语法

01-变量的定义 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> // var somedody; // console.log(somebody); // var somebody = &qu

IOS常见语法解惑

由于工作过程中经常需要查看IOS的Objective-C代码,遂把一些常见的.有疑问的OC语法列出,方便之后会看,提升效率. Objective-C中的@语法 @interface告诉编译器,我要声明一个新类,包含了类的属性和方法,以@end结尾: @implementation告诉编译器,这是某个类的具体实现,以@end结尾: @property是声明属性的语法,它可以快速方便的为类的成员变量创建存取器,并允许我们通过点语法使用存取器,@property等同于在.h文件中声明实例变量的get/

微信小程序之初探(常见语法 VS vue)常见问题(点击不生效,数据绑定)

最近在调研微信小程序开发,对于一个前端小白来说,在各种框架都还用不熟的情况下,再来开发小程序确实还是不容易. 小程序出来之初,听过演讲,看过一点点儿视频,感觉和angular语法有点相似(PS:那是也是只了解一点点儿angular语法): 近两天开始尝试开发小程序,讲真,语法和angular和vue都很相似,小程序提供的语法现在还算全面,很多方法都有提供: 下面简述一下常用方法的使用: 一:数据绑定: html js 直接把数据写在data里面就行了,这样数据可以直接渲染到页面上, 那么问题来了