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的一些知识点的更多相关文章

  1. ES6/ES2015常用知识点和概念

    越来越多的开源库开始使用ES2015来构建代码了,大家知道ES6=ES2015,ES6在2015年被ECMAScript标准化组织approve,各大浏览器厂商要完全支持ES6的强大功能还须一些时日, ...

  2. ES6之主要知识点(十)Proxy

    Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程. Proxy 可以理解成,在目标对象之前架设一层“拦 ...

  3. ES6之主要知识点(九)Set和Map

    1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); ...

  4. ES6之主要知识点(八)Symbol

    防止属性名的冲突.这就是 ES6 引入Symbol的原因. 它是 JavaScript 语言的第七种数据类型,前六种是:undefined.null.布尔值(Boolean).字符串(String). ...

  5. ES6之主要知识点(七)对象

    1.属性的简洁表示法 ES6 允许直接写入变量和函数,作为对象的属性和方法.这样的书写更加简洁. function f(x, y) { return {x, y}; } // 等同于 function ...

  6. ES6之主要知识点(六)数组

    引自http://es6.ruanyifeng.com/#docs/array 1.扩展运算符(...) 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算,将一个数组转为用 ...

  7. ES6之主要知识点(五)函数

    函数参数的默认值 作用域 ; function f(x, y = x) { console.log(y); } f() let x = ; function f(y = x) { let x = ; ...

  8. ES6之主要知识点(四)数值

    引自:http://es6.ruanyifeng.com/#docs/number 1.Number.isFinite(),Number.isNaN() Number.isFinite(); // t ...

  9. ES6之主要知识点(三)字符串

    引自:http://es6.ruanyifeng.com/#docs/string#codePointAt codePointAt() String.fromCodePoint() at() incl ...

随机推荐

  1. Python进阶 - 对象,名字以及绑定

    Python进阶 - 对象,名字以及绑定 1.一切皆对象 Python哲学: Python中一切皆对象 1.1 数据模型-对象,值以及类型 对象是Python对数据的抽象.Python程序中所有的数据 ...

  2. Shiny for Interactive Application Development using R(转)

    This slidify-based deck introduces the shiny package from R-Studio and walks one through the develop ...

  3. 支付宝支付-常用支付API详解(查询、退款、提现等)

    所有的接口支持沙盒环境的测试 1.前言 前面几篇文件详细介绍了 支付宝提现.扫码支付.条码支付.Wap支付.App支付 支付宝支付-提现到个人支付宝 支付宝支付-扫码支付 支付宝支付-刷卡支付(条码支 ...

  4. SG函数和SG定理【详解】

    在介绍SG函数和SG定理之前我们先介绍介绍必胜点与必败点吧. 必胜点和必败点的概念:        P点:必败点,换而言之,就是谁处于此位置,则在双方操作正确的情况下必败.        N点:必胜点 ...

  5. 第二天0605下午——超链接<a>与图片<img>

    今天下午学习了超链接<a>标签和图片<img>标签,以下面代码为例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...

  6. [转]tomcat部署

    转载博客原文地址:  http://www.cnblogs.com/xing901022/p/4463896.html 阅读目录 介绍 静态部署——在tomcat启动时部署 动态部署——在tomcat ...

  7. Docker化tomcat 并且使用maven热部署

    今天没事干 就把自己的tomcat  docker化并且使用maven实现热部署 特别记录一下~ 1.首先进行centos7的安装 就不在记录了 注意的是最好使用centos7 因为docker 依赖 ...

  8. PHP基础入门(三)---PHP函数基础

    PHP基础入门(三)---函数 今天来给大家分享一下PHP的函数基础.有了前两章的了解,想必大家对PHP有了一定的基础了解.想回顾前两章的朋友可以点击"PHP基础入门(一)"&qu ...

  9. JS问题笔记——模拟Jq底层实现工厂模式

    <script type="text/javascript"> (function (window,undefined){ function _$(arguments) ...

  10. 通过PHP前端后台交互/通过ajax前端后台交互/php基础传输数据应用/简单的留言版/简单的注册账户/简单的登录页/

      前  言  PHP     通过上一篇博客,注册账号与登录页面--前后台数据交互  跳转转到index主页,接下来进入主页留言板功能,通过ajax向后台传输数据,同时发表留言. 具体的内容分析如下 ...