一、支持环境:node.js完全支持,标准浏览器完全支持。二、测试环境:    chrome下需要在script标签的最先开始的地方需要添加"use strict"。    firefox下需要在script标签的type="application/javascript;version=1.7"。
三、基本语法:    1.变量let:    1.不能重复申明变量(var 可以)。    2.没有预解析的过程。(var 有)。
console.log(a);var a = 2;//console.log();undefined; let会报错。

    3.块级作用域的使用{ //块级作用域;代码块}

       {//从代码块的开始到申明的这段区域----暂存死区let a = 2;console.log(a);//可以访问;
            }console,log(a);//不可以访问。应用:输出0-9;的数字;for(var i = 0;i < 10;i++) {setTimeout(function() {console.log(i);//会输出10次10,
                });}for(let i =0; i < 10;i++) {setTimeout(function() {console.log(i);});//0-9;
          }for(var i = 0; i < 10;i++) {(function(i) {//闭包函数(自执行函数),循环一次执行一次,相似一{}块级作用域。setTimeout(function() {console.log(i);});})(i);}

  2、常量const:不变的量。常量保存值的时候不能改变,保存的是一个对象的时候可以改变。
const a = 2; a=5;//会报错。
const b = { name = "assassion" };b.name = "seafuwg";//对象的话可以修改。

  3、解构赋值:es6 允许按照一定的规则,从数组和对象中取值,对变量赋值。(目前firfox支持词语法,chrome低版本不支持)    3.1 数组:按照顺序赋值。    
var arr = [1,2,3];
var [a,b,c] = arr;
console.log(a);//1
//eg: 值的交换
let x = 2;
let y = 3;
let [x,y] = [y,x]; 

    3.2 对象:是按照键的名字赋值;方便从对象中取值,值的交换等
            let obj = {fn : function() {},name : "assassion",arr : [],obj1 : {}};let {fn,name,obj1} = obj;console.log(fn,name,obj1);    

  4.字符串的扩展    4.1对一些特殊汉字,及表情的支持占四个字节的长度
    var a1 = "?";console.log(a1.length);console.log(String.fromCodePoint(134071));str.at();//找到对应的字符,有些浏览器不支持String.codePointAt();//返回汉字所对应的码点(码值)String.fromCodePoint()//根据码点返回对应的汉字str.repeat(n);//传递一个参数,表示字符串重复的次数

    4.2 模板字符串:用反引号,在反引号中用${变量,常量,表达式,对象...}表示,是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。代码中的字符串用反引号(`)表示,如果需要引入变量则使用${变量名}, 在{}中可以进行运算,也可以引用对象属性。

             var name1 = "assassion";var age1 = 23;var str = "name:"+name1+" age:"+age1+"";console.log(str);var str1 = `name:${name1} age:${age1}`;console.log(str1);    

    4.3字符串查找的扩展方法:和indexOf语法规则基本相似,indexOf(),返回的是值或者-1。扩展的都是ture或者false;      4.3.1 str.includes();参数:
          1、要查找的字符串          2、起始位置          返回布尔值,表示是否找到了参数字符串
                     let aa = "assassin";console.log(aa.includes("i"));//trueconsole.log(aa.includes("i",5));//trueconsole.log(aa.includes("i",7));//false                         

      4.3.2 str.startsWith()           参数:            1、要查找的字符串            2、起始位置            返回布尔值,表示参数字符串是否在源字符串的头部。
                     console.log(aa.startsWith("ass"));//trueconsole.log(aa.startsWith("ass",3));//trueconsole.log(aa.startsWith("ass",4));//false     

      4.3.3str.endsWith()         参数:          1、要查找的字符串          2、起始位置(针对的是n个字符)          返回布尔值,表示参数字符串是否在源字符串的尾部。
                 console.log(aa.endsWith("in"));//trueconsole.log(aa.endsWith("i"));//falseconsole.log(aa.endsWith("i",7));//true 字符串的索引都是从1开始。         

    5.数值的扩展        5.1 二进制和八进制的表示方法:0b和0o;      5.2 Math函数的扩展:         5.2.1. Math.trunc();去掉小数点,Math.trunc(1.92344) = 1;简单的去掉小数。         5.2.2. Math.sign();判断一个数是正数,负数,正0,负0;         5.2.3. Math.hypot(a,b);返回两个数的平方和的平方根(勾股定理)
    6.数组的扩展      6.1 Array.from();//把类数组的数据转换成数组
                     var str1 = "assassin";var str2 = [].slice.call(str1);//以前的方法
                     console.log(Array.from(str1));console.log(Array.from(str2));                 

      6.2 Array.of();//将一组参数转换成数组;类似于new Array(1,2,3,4,5);
var arr = Array.of(1,2,3,4,5);

      6.3 arr.find();//找出第一个符合条件的数组元素。
        找出第一个符合条件的数组元素        参数:          1、回调函数          2、回调函数内this的指向        遍历整个数组,遍历过程中调用回调函数,如果回调函数的返回值为true,则返回当前正在遍历的元素。如果所有元素都不符合条件则返回undefined
                     var array = [1,2,3,4,5,6,7,8];var n = array.find(function(val,index) {//函数里面的参数1:遍历的元素,参数2:遍历的索引return val < 4;});
            console.log(n);//1

      6.4 arr.findIndex();找出第一个符合条件的数组元素的位置
        参数:          1、回调函数          2、回调函数内this的指向        遍历整个数组,遍历过程中调用回调函数,如果回调函数的返回值为true,则返回该数组元素的位置。如果所有元素都不符合条件则返回-1;和arr.find();方法用法相似,知识返回值不一样,返回的是数组的索引。
      6.5 arr.fill();用来填充数组
        参数:          1、填充的内容          2、起始位置          3、结束位置
let fillArr = [1,2,3,4,5,6,7,8];let fillArr1 = fillArr.fill(9,fillArr.length+1,length+2);//这样是无法添加的超出原数组的长度,知识填充,改变里面的不是添加let fillArr2 = fillArr.fill(9,9,10);//这样是无法添加的超出原数组的长度let fillArr3 = fillArr.fill(9,7,8);//这样是无法添加的超出原数组的长度console.log(fillArr2); //1,2,3,4,5,6,7,9

      6.6 for of:遍历,只要有遍历接口就可以遍历。默认的对象是没有遍历接口的,会报错 undefined is not a function。
                 var arrForOf = [1,2,3,4,5,6];for(let value of arrForOf) {console.log(value);//1,2,3,4,5,6
                 }for(let val in arrForOf) {console.log(val);//它返回的是索引 0,1,2,3,4,5
                 }//value:表示值,key: 表示键(索引);let arrKey = [1,2,3,4,5,6];for(let key of arrKey.keys()) {console.log(key);//返回的索引
                 }for(let value of arrKey) {//默认的后面添加数组即可let value of arrKey.values();console.log(value);//返回的索引
                 }//value:表示值,key: 表示键(索引);一起遍历for(let [key,value] of arrKey.entries() ) {console.log(key,value);}    

      6.7 数组推导:ES6提供简洁写法,允许直接通过现有数组生成新数组,字符串也可以。谷歌不支持
             var arrInfer = [for(value of arrKey) value*2];//还可以使用判断等。
             console.log(arrInfer);//原来的2倍var arrInfer1 = [for( i of arrKey) if(i > 2) i];console.log(arrInfer1);//数组大于2的元素

 


转载于:https://www.cnblogs.com/intelwisd/p/7863105.html

ES6--基础语法(一)相关推荐

  1. Part2:面向对象、原型链、函数、ES6基础语法

    一.面向对象 标记语言:HTML5/CSS3 编程语言:编程思想 面向过程 C 面向对象 JAVA.PHP.C#(ASP.NET).JavaScript- 1.单例设计模式 let name='和冉' ...

  2. ES6基础语法(let、const、解构赋值、模板字符串、简化对象、箭头函数、扩展运算符)(一)

    系列文章目录 第二章:ES6深入(Symbol.类.迭代器.Set.Map)(二) 第三章:ES6深入(生成器.Promise.async/await)(三) 第四章:ES6+新增API拓展(对象AP ...

  3. ES6新语法及vue基础

    https://www.angularjs.net.cn/ es6新语法:(多看多用) 1 字符串方法 //字符串方法 includes包含// let str="ijahsdjkhasd& ...

  4. python3基础语法-Python3的一些基础语法介绍和理解

    作者:心叶 时间:2018-04-23 22:18 此处长期维护一些对帮助快速使用python3的一些基础语法,方便日常算法练习使用. 控制语法 break 语句可以跳出 for 和 while 的循 ...

  5. 【ES6基础】Object的新方法

    Object对象可谓是JS的重要核心内容,在你使用JS的过程中,你会发现自己的工作大部分都是在操作对象,ES6.ES7.ES8引入了不少新的方法,本篇文章笔者将带着大家一起熟悉下重点的新方法. 本篇文 ...

  6. 03-1.JavaScript基础语法略写/模版字符串

    基础语法 参考前端基础之JavaScript - Q1mi - 博客园 略写原因 由于后续主要用jQuery编写,jQuery简化编程.大概了解JavaScript语法即可. jQuery是一个轻量级 ...

  7. vueJs的简单入门以及基础语法

    vue的api vue官网API 1基础语法 1-1基本数据绑定 <div id="app">{{ msg }} </div> //script new V ...

  8. 带你了解Typescript的14个基础语法

    摘要:Typescript可以说是JavaScript的超集,在JS的基础上新增了许多语法特性,使得类型不再可以随意转换,能大大减少开发阶段的错误. 本文分享自华为云社区<Typescript基 ...

  9. android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  10. ECMAScript基础语法

    目录 ECMAScript基础语法 一.ECMA基础语法 二.BOM Window 对象 三.DOM 四.AJAX AJAX是什么? ECMAScript基础语法 一.ECMA基础语法 1.基本数据类 ...

最新文章

  1. Boreas: 一种基于token 的精确并且大规模检测代码克隆的方法
  2. 时隔6年,“三巨头”再度联手,发布万字长文:深度学习将通往何方?
  3. 计算机视觉开源库OpenCV之查找轮廓函数cv2.findContours()介绍
  4. 【C++】44.使用xx.so动态链接库
  5. 激发新型城市创新动能 第四范式分享智慧城市探索之路
  6. 计算机科学与技术专业改革,浅析计算机科学与技术专业教学改革
  7. java移动接口发短信_Java面试零碎知识点
  8. 网易邮箱服务器怎么注册,免费网易域名邮箱申请教程(图)
  9. VMware12安装centOS8(vm虚拟机安装centos8教程)
  10. 苹果手机连电脑只显示充电怎么办
  11. eclipse不自动弹出提示的解决办法(eclipse alt+/快捷键失效)centos 6.7
  12. HeartBeat的一些介绍和功能上的一些总结
  13. Mantis集成富文本插件
  14. 一文梳理等保2.0与工业控制系统安全扩展要求
  15. 【PyTorch】如何取得预训练模型的标签label列表(以 Alexnet 在 ImageNet 上的预训练模型为例)
  16. usb gadget printer驱动分析
  17. HBase、Cassandra、LevelDB、RocksDB底层数据结构是什么?
  18. 基于Leaflet的leaflet-sidebar侧边栏组件集成
  19. 台达PLC与台达VFD变频器modbus 通讯案例
  20. 基于svg开发绘制地铁图

热门文章

  1. 淡淡说说技术人员创业
  2. Go 的 flag 包可以解析命令行的参数
  3. 摄像头图像桶形畸变校正测试
  4. redmine 一键安装
  5. 几种软负载均衡策略分析
  6. restful-api最佳实践
  7. LNMP环境搭建——PHP篇
  8. 深入理解Java虚拟机04--类结构文件
  9. 《Spark快速大数据分析》—— 第三章 RDD编程
  10. 重建DC的DNS区域