其他分享
首页 > 其他分享> > 第四周预习

第四周预习

作者:互联网

  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