es6的一些知识点
es6的一些知识点
前言:es6(ECMAscript2015)标准
let、const、var的一些区别
- let、const 块级作用域、全局作用域、函数作用域
- var 全局作用域、函数作用域
变量提升的问题:
var : true
let、const : false
例子:
console.log(a);//undefind
let a=1;
块级作用域:例如在一个函数,for循环。。。区块之内!
const 常量,值不可更改。
let、var 变量,值可以更改
严格模式
消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;
消除代码运行的一些不安全之处,保证代码运行的安全;
提高编译器效率,增加运行速度;
为未来新版本的Javascript做好铺垫。
"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。
“use strict”
模板字符串(Template Strings)
- 规定了一种新的string方法可用 `` 斜引号来创建字符串的代码块
- 绑定变量用${}来绑定。
let name="xiaosan";
let age=22;
let home="china"
let str1=`she's name ${name},
she age ${age},
she homes's ${home}`
alert(str1)
- 字符串内可直接换行
let str1=`she's name ${name},
she age ${age},
she homes's ${home}`
alert(str1)
- 标签模板字符串。
function tag(strings,...args){ //...扩展运算符
//console.log(strings);
//console.log(args);
let str='';
for(var i=0,l=strings.length-1;i<l;i++){
str=str+strings[i]+args[i];
}
str+=strings[l];
return str
}
let name1="xiaomi";
let age1=23;
let str3=tag`
she's nam1 ${name1}
she age ${age1}
`
console.log(str3)
增强的对象字面量(自变量)
- 对象属性能够简写;
- 对象方法可以简写function关键字
let name="张三";
let age=22;
let zhangshan={
name,
age,
runing(){
console.log("我会跑")
}
}
- 对象属性名可以书写自动计算形式
- 原型继承__proto__
let people={
eat(){
console.log("我会吃")
},
speak(){
console.log("我会说话")
},
feeling(){
console.log("我有感情")
}
}
let caowei={
name:name,
__proto__:people,//设置对象原型,用来继承
study(){
console.log("I have sutying ok!")
}
}
console.log("my name's"+caowei.name)
caowei.study();
caowei.eat();
caowei.speak();
caowei.feeling();
console.log(caowei)
解构赋值
- es6允许我们按照一定结构提取数组与对象里的值,赋给变量
- 函数的解构赋值
- 说的明白一点解构赋值它的类型就是数组跟对象
例子
//数组
let [a,,c]=[1,2,3];
console.log(a,c)
//对象
let obj={
x:1,
y:2
}
let {x,y}=obj
console.log(x,y)//1 2
//函数操作
//函数传对象
function fn(person){
let name=person.name;
let age =person.age;
console.log(name,age)
}
let aa={name:"xiaosan",age:18}
fn(aa)*/
/* function fn({uname:name,age,sex="女人"}){
console.log(name,age,sex)
}
let bb={uname:"xiaosan",age:18}
fn(bb)*/
//es5 函数传数组
/*function fn(Arr){
let x=Arr[0];
let y=Arr[1];
let z=Arr[2];
console.log(x,y,z)
}*/
/*function fn([x,y,z,d=22]){
console.log(x,y,z,d)
}
let arr=[9,5,8]
fn(arr)
//字符串解构赋值
let str="123456";
let [a,b,c,d,e,f,g=50]=str;
console.log(a,b,c,d,e,f,g)
这就是es6的一些简单认知,未完待续...
es6的一些知识点的更多相关文章
- ES6/ES2015常用知识点和概念
越来越多的开源库开始使用ES2015来构建代码了,大家知道ES6=ES2015,ES6在2015年被ECMAScript标准化组织approve,各大浏览器厂商要完全支持ES6的强大功能还须一些时日, ...
- ES6之主要知识点(十)Proxy
Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前架设一层“拦 ...
- ES6之主要知识点(九)Set和Map
1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); ...
- ES6之主要知识点(八)Symbol
防止属性名的冲突.这就是 ES6 引入Symbol的原因. 它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(Boolean).字符串(String). ...
- ES6之主要知识点(七)对象
1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. function f(x, y) { return {x, y}; } // 等同于 function ...
- ES6之主要知识点(六)数组
引自http://es6.ruanyifeng.com/#docs/array 1.扩展运算符(...) 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用 ...
- ES6之主要知识点(五)函数
函数参数的默认值 作用域 ; function f(x, y = x) { console.log(y); } f() let x = ; function f(y = x) { let x = ; ...
- ES6之主要知识点(四)数值
引自:http://es6.ruanyifeng.com/#docs/number 1.Number.isFinite(),Number.isNaN() Number.isFinite(); // t ...
- ES6之主要知识点(三)字符串
引自:http://es6.ruanyifeng.com/#docs/string#codePointAt codePointAt() String.fromCodePoint() at() incl ...
随机推荐
- MyBatis双数据源配置
配置相关 jdbc 配置 #============================================================================ # MySQL # ...
- python 列表转字典
def func_data(text): data = dict() for kv in text.split(','): k_v = kv.split(':') data[k_v[0]] = k_v ...
- Java泛型学习
1.泛型的概念 泛型即"参数化类型",就比如我们定义方法的时候,定义一个变量,称为形参,变量值根据传进去的实参的值不同而改变.而泛型的出现,就是为了解决类型也能根据传进去的类型改变 ...
- Maven基本安装与配置
百度Maven,进入Maven官网,点击Download 点击下载Binary zip包,下载到电脑上相应的位置即可. 找到下载文件,进行解压,解压到相应的文件夹下面,并且记住路径. 打开系统-> ...
- C++函数调用的反汇编过程及Thunk应用
x86汇编基础知识 1. 汇编常用寄存器 esp,(Extended stack pointer)栈顶指针.因为x86的栈内存是向下扩展的,因此当push入栈时,esp–.pop出栈时,esp++.e ...
- Xamarin App文件(apk)大小和启动时间的影响因素
Xamarin开发的时候大家都有一个疑问,就是apk文件会不会特别的大,启动会不会很慢.答案是肯定的,文件肯定大,启动肯定会慢,但是具体大多少.具体慢多少,有什么因素可以使apk文件稍微小一点.可以使 ...
- Layered Windows窗口的半透明效果
介绍: Layered Windows是windows窗口中的一类,提供类似半透明的效果(阿尔法混合).半透明效果是字面上有能看出来的,但实际上根据MSND,该类型的窗口还能更好的支持非矩形的窗口,使 ...
- shell网络客户端
需要把线上的access日志发送到另一个程序接收 开始想着用python实现,虽然python也有实现类似tail -F的方式,但太麻烦,而且效率也有折扣 偶然发现了shell可以实现网络client ...
- influxdb + Grafana可视化监控平台
在centos6.5上influxdb + Grafana监控平台配置: 1.RedHat and CentOS users can install the latest stable version ...
- 逻辑关系下的NN应用
自己好奇搜了几篇别人对Ng视频的的笔记,读下去可观性很强,后回到自己的笔记却觉得矛盾很多,有些地方搞得很模糊,自己没有仔细去想导致写完读起来很怪,此篇之后我决定放慢记笔记的速度,力求尽多地搞清楚模 ...