ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第四周预习

2022-06-13 01:32:19  阅读:136  来源: 互联网

标签:ES6 return 函数 预习 参数 数组 var 四周


  1. JavaScript 的版本

     JavaScript这种语言的基本语法结构是由ECMAScript来标准化的, 所以我们说的JavaScript版本一般指的是ECMAScript版本.
    

2009年12月,ECMAScript 5.0版正式发布

2011年6月,ECMAscript 5.1版发布

2015年6月,ECMAScript 6正式发布,并且更名为“ECMAScript 2015”。

2016年6月,ECMAScript6.1发布, 与ECMAScript6差异较小

ES5 : ECMAScript 5

ES5的严格模式:

  所谓严格模式,从字面上就很好理解,即更严格的模式 在这种模式下执行,浏览器会对JS的要求更苛刻,语法格式要求更细致,更符合逻辑。

  怪异模式:就是我们之前一直使用的开发模式,就叫怪异模式。因为很多时候出来的结果是非常怪异的,所以才称之为怪异模式。

使用严格(全局)模式

    "use strict";

    n = 10;

    console.log(n);

使用严格(局部)模式

    function fn(){

        "use strict";

        n = 10

        console.log(n);

    }

Javascript 为什么要设立严格模式:

1.消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

2.代码运行的一些不安全之处,保证代码运行的安全;

3.提高编译器效率,增加运行速度;

例如以下几点:

  1. 不可以省略var声明变量

  2. 禁止函数使用this关键字指向全局变量

  3. 禁止使用八进制方法

  4. 不允许在非函数的代码块内声明函数

  5. 严格模式下,arguments变量,形参是不会变(不同步)

ES5-Array新增

map(): 和forEach非常相似,都是用来遍历数组中的每一项的,区别是map的回调函数中支持return返回

不管是forEach还是map 都支持第二个参数值,第二个参数的意思是把匿名回调函数中的this进行修改。

var arr = [1,2,3,4,5];

var newArr = arr.map(function(value, index, array){

    return value * 2;

});

console.log(arr); //[1,2,3,4,5]

console.log(newArr); //[2,4,6,8,10]

注意:forEach和map不支持IE8及以下

ES5-Array新增

reduce()用法: 接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的一个数组逐项处理方法

var result = arr.reduce(function(pre, cur, index, array){

console.log("前一个值:" + pre + "当前值:" + cur + ", 下标:" + index + ", 数组:" + array);

return cur;

}, 10);

reduce接收四个两个参数, 第二个参数可选(为pre的初始值)

第一个参数是回调函数,该回调函数中又包含四个参数, 分别为:

pre:上一次调用回调函数时的返回值,或者初始值

cur:当前正在处理的数组元素

index : 当前正在处理的数组元素下标

array : 调用reduce()方法的数组

result: 遍历完数组后的最终结果

什么是ES6?
ECMAScript 6(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了。

  ES6的目标,是使得JavaScript语言可以用来编写大型的复杂的应用程序,成为企业级开发语言。

支持ES6的浏览器:

虽说ES6已经作为新一代标准发布了,但是各大浏览器对新功能实现支持的还需要一段时间,那么我们怎么知道自己使用的浏览器是否支持ES6的相应功能呢?

  不用紧张,对ES6的支持可以查看kangax.github.io/es5-compat-table/es6/,在这里可以清晰的了解到不同版本的浏览器对ES6功能的支持情况。随着时间的推移,支持度会越来越高了。

  由于浏览器对ES6的支持度还不完整, 所以在实际开发过程中我们通常需要将ES6的代码转换成ES5。

ES6-String新增方法:
传统上,JavaScript只有 indexOf 方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6又提供了三种新方法。
includes():返回布尔值,表示是否找到了参数字符串。
startsWith():返回布尔值,表示参数字符串是否在源字符串的头部。
endsWith():返回布尔值,表示参数字符串是否在源字符串的尾部。
repeat(): 返回一个新字符串,表示将原字符串重复n次.

模板字符中,支持字符串插值
document.write(Hello ${first} ${last}!); //注意引号

ES6-Array新增:
Array.from()方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括ES6新增的数据结构Set和Map)
Array.from(arrayLike, mapFn, thisArg)
Array.from()还可以接受第二个参数,作用类似于数组的map方法,用来对每个元素进行处理.
Array.of(): 方法用于将一组值,转换为数组
Array.of(3, 11, 8) // [3,11,8]
find()和findIndex()

数组实例的find方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。

箭头函数:
ES6允许使用“箭头”(=>)定义函数
var fn = v => v;

上面的箭头函数等同于:
var fn = function(v) {
return v;
}

如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。
var fn = () => 5; 等同于: var fn = function () { return 5 };
var sum = (a, b) => a+b; 等同于:
var sum = function(a, b) {
return a+b;
};

如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,使用return语句返回。
var sum = (a, b) =>( { let c = a+b; return c; })

由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号。
var fn = id => ({ id: 11, name: "zhangsan" });

箭头函数使得表达更加简洁。
const isEven = n => n % 2 == 0;
const square = n => n * n;

箭头函数可以简化回调函数的写法:

// 正常函数写法

[1,2,3].map(function (x) {

  return x * x;

});

// 箭头函数写法

[1,2,3].map(x => x * x);

ES6-Object新增:

属性的简写:

  var foo = 'bar';

  var baz = {foo};    // 等同于 var baz = {foo: 'bar'};

方法的简写:

  var o = {

        method() { 

            return "Hello!";

        }

  };

属性名表达式:

  let obj = {};

  obj['a'+'bc'] = 123;

  console.log(obj);

方法名表达式:

  let obj = {

        ['h'+'ello']() {

            return 'hi';

        }

  };

Object.is( , )用来比较两个值是否严格相等。它与严格比较运算符(===)的行为基本一致, 不同之处只有两个:一是+0不等于-0,二是NaN等于自身

Object.assign() 方法用来将源对象(source)的所有可枚举属性,复制到目标对象(target)。它至少需要两个对象作为参数,第一个参数是目标对象,后面的参数都是源对象。只要有一个参数不是对象,就会抛出TypeError错误。

var target = { a: 1 };

var source1 = { b: 2 };

var source2 = { c: 3 };

Object.assign(target, source1, source2);

console.log(target) // {a:1, b:2, c:3}

ES6-Map:

Map 是一个“超对象”,其 key 除了可以是 String 类型之外,还可以为其他类型(如:对象)

let map = new Map([[1, 'one'],[2, 'two'],[3, 'three']]);

他的方法和 Set 差不多:

size:返回成员总数。

set(key, value):设置一个键值对。

get(key):读取一个键。

has(key):返回一个布尔值,表示某个键是否在Map数据结构中。

delete(key):删除某个键。

clear():清除所有成员。

keys():返回键名的遍历器。

values():返回键值的遍历器。

entries():返回所有成员的遍历器。

标签:ES6,return,函数,预习,参数,数组,var,四周
来源: https://www.cnblogs.com/wmf0616/p/16369428.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有