ES6基本语法和一些面向对象的知识
声明变量
var
使用var声明变量会将变量的声明提到全局,在局部作用域声明的在全局也能打印
{
var a = 12;
}
// 变量提升 var会将变量的声明提到全局
console.log(a);
let
使用let声明表名我们的块级作用域,在局部作用域声明的在全局打印会报错
{
let a = 12;
}
// 使用let声明表名我们的块级作用域
console.log(a);
const
const声明的变量 只声明常量 一旦声明不可改变,修改后会报错
const b = 13;
b = 14;
console.log(b);
模板字符串``
模板字符串``,如果你想插入变量${变量名}

var name = "yuan", age = 18;
// var str = name + "," + age + "岁了";
var str = `${name},${age}岁了`;
console.log(str);
var url = "http://www.luffycity.com";
$("ul>li").append(
`<a href="${url}"></a>`
);

箭头函数
正常情况下我们定义函数
function add(x,y) {
console.log(x+y)
}
add(2,3);
var add2 = function () {
}
使用箭头函数
var add2 = (a,b)=>{
console.log(a-b)
};
add2(9,2);
字面量方式声明对象

var person = {
name: "日天",
age:18,
fav: ()=> {
// 使用箭头函数会改变this的指向,指向了父级元素
console.log(this)
}
};
person.fav(); // Window

这里可以看到由于使用了箭头函数,这里的this不是指person,而是指向了父级元素,也就是window
对象的单体模式

var person2 = {
name: "ritian",
// fav:function () {
// }
fav(){
console.log(this)
}
};
person2.fav(); // Object {name: "ritian", fav: function}

这里没有使用箭头函数,而是使用了对象的单体模式,这里的this就是对象本身
ES5面向对象相关
对象的三大特性 封装 继承 多态
函数的作用: 封装一块代码,复用,作用域 解决代码的重用性
继承的作用: 特点: 子类继承父类,拥有父类的所有属性和方法,还可以有自己的属性和方法
多态: 代码可重用性 解耦合
es5的构造对象的方式 使用构造函数来创建对象
构造函数唯一的不同 函数名首字母大写

function Animal(name,age) {
// 点语法 set方法和get方法
this.name = name;
this.age = age;
// this.fav = function () {
// }
}
Animal.prototype.showName = function () {
console.log(this.name)
};
var a = new Animal("yuan", 18);
console.log(a.age);
a.showName();

使用prototype的方法给构造函数的父类增加方法(构造函数本身也可以调用)
ES6的面向对象

class Animal{
constructor(name="yuan",age=13){
this.name = name;
this.age = age;
}
showName(){
console.log(this.age)
}
}
var a = new Animal();
a.showName()

constructor相当于初始化方法
ES6基本语法和一些面向对象的知识的更多相关文章
- ES6 常用语法知识汇总
ES6模块化如何使用,开发环境如何打包? 1.模块化的基本语法 /* export 语法 */ // 默认导出 export default { a: '我是默认导出的', } // 单独导出 exp ...
- ES6常用语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- ECMAScript简介以及es6新增语法
ECMAScript简介 ECMAScript与JavaScript的关系 ECMAScript是JavaScript语言的国际化标准,JavaScript是ECMAScript的实现.(前者是后者的 ...
- ES6新语法
ES6新语法概览 简介 ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015:该标准由ECMA(欧洲计算机制造联合会)的第39号技术专家委 ...
- ES6最新语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- ES6新语法之let关键字;有别于传统关键字var的使用
ES6新语法于2015年发布:而我这个前端小白在17年才接触到.惭愧惭愧!!不过到目前为止,似乎只有FireFox和Chrome对ES6的支持相对良好.不过既然人家ES6已经出来了,还是要跟上技术的潮 ...
- JavaScript 面向对象开发知识基础总结
JavaScript 面向对象开发知识基础总结 最近看了两本书,书中有些内容对自己还是很新的,有些内容是之前自己理解不够深的,所以拿出来总结一下,这两本书的名字如下: JavaScript 面向对象精 ...
- Vue(1)- es6的语法、vue的基本语法、vue应用示例,vue基础语法
一.es6的语法 1.let与var的区别 ES6 新增了let命令,用来声明变量.它的用法类似于var(ES5),但是所声明的变量,只在let命令所在的代码块内有效.如下代码: { let a = ...
- Pthon面向对象-补充知识
Pthon面向对象-补充知识 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.tracemalloc 标准库tracemalloc,可以统计内存使用情况,通过下面的案例可以看出内 ...
随机推荐
- 更改VS2010的[默认开发语言]
1.菜单-->"工具"-->"导入导出设置".例如以下图: 2.选择"重置全部设置",例如以下图: 3.重置设置,例如以下图: ...
- RMQ LAC 入门
RMQ RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j里的最小(大) ...
- Extjs学习笔记--(三,调试技巧)
FireFox 1.firedebug(略) 2.illuminations 在illuminations页面可也看到缩写的extjs的代码,同时可以进行相应的调试 3,Firedebug AutoC ...
- swift - UISwitch 的用法
具体代码如下,和oc的使用没有差别: 创建: let hswitch = UISwitch() /*创建开关,以及监听它值的改变,代码如下*/ //开关位置 hswitch.center = CGPo ...
- C++11新特性之六——元编程
C++11新特性之六——元编程
- 小程序的movable-view怎么持续移动
在小程序的官方例子中,点击按钮以后的movable-view只是挪动了一次(链接:https://mp.weixin.qq.com/debug/wxadoc/dev/component/movable ...
- php学习一:语法规则
1.书写规则 在html中嵌入php的时候,需要有结束语,即<?php ...?>,在靠近结束符号的最后一个语句可以不用写分号: 但是在单独的php中,最后可以不用以?>来结尾; 2 ...
- Swift/Objective-C-Swift与Objective-C混用教程
简介:我想很多iOS开发者在知道Swift后,心中最大的问题就是如何将Swift应用到原有项目之中.下面我将简要介绍这2种语言的混用方法,内容参考自官方文档 Using Swift with Coco ...
- codevs 5967 [SDOI2017]相关分析
[题解] /* WA://50分 last:(r-l+1)<-- (r-mid) (r-l+1)<-- (mid-l+1) now:int mid=l+r>>1; tr[l ...
- Python class的属性访问控制和内建函数重写实现高级功能以及@property
一.类属性的访问控制 Python Class确实是博大精深,我们还是来温习一下属性的访问控制作为开(fu)场(xi). 首先_varname是可以访问的,__varname是不能直接访问(原理是__ ...