第四周预习
作者:互联网
-
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.提高编译器效率,增加运行速度;
例如以下几点:
-
不可以省略var声明变量
-
禁止函数使用this关键字指向全局变量
-
禁止使用八进制方法
-
不允许在非函数的代码块内声明函数
-
严格模式下,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