2018-12-15

ES5

严格模式: "use strict";

严格模式对正常的 JavaScript语义做了一些更改。

严格模式通过抛出错误来消除了一些原有静默错误

严格模式修复了一些导致 JavaScript引擎难以执行优化的缺陷:有时候,相同的代码,严格模式可以比非严格模式下运行得更快

严格模式禁用了在ECMAScript的未来版本中可能会定义的一些语法。

八进制不严格报错:

image
image

变量未声明报错

image
image
image
image

数组尾逗号:

-- ES5中允许在数组的末尾有一个多余的尾逗号(即最后一个逗号之后可以没有元素)

[,,,].length = ?

-- ES5及之后:3

-- ES5前:4

{

name : value,

key : value,

method : function() {},

}

image
image
image
image

Array 新增API 参考链接

> var array = new Array()
> 
> array.forEach(function(currentValue, index, arr){})
> 
> array.map(function(currentValue, index, arr){})
> 
> ["3", "5", "7", "1"].map(parseInt)//parseInt(数值,进制)
> 
> array.some(function(currentValue, index, arr){})
> 
> array.every(function(currentValue, index, arr){})
> 
> array.filter(function(currentValue, index, arr){})
> 
> array.indexOf(elem, fromIndex)
> 
> array.lastIndexOf(elem, fromIndex)
> 
> array.reduce(function(sum, currentValue, index, arr){}, init)
> 
> array.reduceRight(function(sum, currentValue, index, arr){}, init)
> 
> Array.isArray()
> 
> -- 判断参数是否为数组
> 
> Array.from()
> 
> -- ES6中,从一个类似数组或可迭代对象中创建一个新的数组实例

String 新增API

trim()

-- 去掉字符串前后空白

-- 兼容:string.replace(/^\s+|\s+$/g, "")

image
image

Date 新增API

Date.now()

date.toISOString()

-- YYYY-MM-DDTHH:mm:ss.sssZ

date.toJSON()

-- YYYY-MM-DDTHH:mm:ss.sssZ

image
image
image
image

JSON(ES5新增内置对象)

在 JSON 文本中,字符串一定要用""(双引号)包含。对象的属性名本质上是字符串,所以在 JSON 文本中表示对象时,必须使用 "" 将对象属性名包含。

JSON.stringify()

-- 将JS值转换为JSON文本格式的字符串

JSON.parse()

-- 将JSON文本转换为 JS 值

image

this

-- 指代一个对象,执行上下文环境中的当前对象

-- 通常情况下,谁调用,指向谁

-- 在事件函数中的 this 通常指向的是绑定事件的事件源元素

-- 在构造函数中的 this 通常指向的是 new 所创建出来的对象本身

Function.prototype.bind(thisArg)

-- 返回一个新函数,该新函数体的内容和原函数内容完全一致,但当新函数被调用时,函数体中的 this 指向的是 thisArg 参数所表示的对象

-- 事件委派:如果需要将事件处理程序中的 this 改为最初触发事件的事件源元素,则需要修改 this 指向

image
image
image
image
image
image

ES6

内置对象新增API

Array:

Array.from()

-- 将类数组对象转换为数组返回

array.fill()

-- 将数组元素填充指定值

image
image

String:

startsWith()

-- 方法用来判断当前字符串是否是以另外一个给定的子字符串“开头”的 ,是 返回true 否false

endsWith()

-- 方法用来判断当前字符串是否是以另外一个给定的子字符串“结尾”的,是 返回true 否false

image

Number:

Number.parseInt()

Number.parseFloat()

等等。。。。

新增Map集合

用于存储 key-value 键值对

创建:new Map()

API:

Map.prototype.size -- 集合长度

Map.prototype.clear() -- 清空

Map.prototype.delete(key) -- 删除,根据 key 删除 key-value 映射

Map.prototype.entries() -- 返回所有的 key-value 映射

Map.prototype.forEach() -- 遍历迭代集合中每对 key-value

Map.prototype.get(key) -- 根据 key 获取对应的 value

Map.prototype.has(key) -- 判断集合中是否存在 key 所映射的 value

Map.prototype.keys() -- 返回所有键的集合

Map.prototype.set(key, value) -- 设置,向集合中保存 key-value 映射

Map.prototype.values() -- 返回所有值的集合

新增Set集合

用于存储各类型的唯一值,通常我们认为 Set 集合中的元素是无序的

创建:new Set();

API:

Set.prototype.size -- 长度

Set.prototype.add() -- 添加,保存元素

Set.prototype.clear() -- 清空

Set.prototype.delete() -- 删除

Set.prototype.entries() -- 集合

Set.prototype.forEach() -- 遍历

Set.prototype.has() -- 判断是否存在

Set.prototype.values() -- 所有值

for...of和for ... in两者之间差别

for...of

for(var i of arr)//其中i的类型是数字,值是数组的元素值

for ... in

for(var i in arr)//其中i的类型是字符,值是数组的下标

Symbol 符号

var sym = Symbol();

模板字符串

`hello

${exp}//占位符

world`

块级作用域

let 变量名 = 变量值;

const 变量名 = 变量值; -- 定义常量

没有声明提升

暂存死区

IIFE //自执行函数

**let 关键词声明的变量不具备变量提升(hoisting)特性
let 和 const 声明只在最靠近的一个块中(花括号内)有效
当使用常量 const 声明时,请使用大写变量,如:CAPITAL_CASING
const在声明时必须被赋值 **

箭头函数:使用括号包裹参数,跟随一个 =>,紧接着是函数体

是函数表达式的简写方式

箭头函数不会绑定自己的 this、arguments、super、new.target

箭头函数不能作为构造函数使用

function (curr){return exp}

简化

(curr,) => {;return exp}//当参数为多个,函数主体语句为多条的时候

curr =>{;return exp}//当参数为一个,函数主体语句为多条的时候

curr => exp//当参数为一个,函数主体语句为 return exp的时候

解构赋值:解构可以避免在对象赋值时产生中间变量

var [a,b, ...c] = array;

-- 将数组中第一个元素赋值给变量a, 第二个元素赋值给变量 b,剩余元素(子数组)赋值给c

var {name, key, method} = object;

-- 将 object.name 属性值赋值给变量 name,将 object.key 属性值赋值给变量 key,将 object.method 属性值赋值给变量 method

... Spread / Rest 操作符

剩余参数 当被用于函数传参时,是一个还原操作符

展开运算符 当被用于迭代器中时,它是一个 展开操作符

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • [TOC] 参考阮一峰的ECMAScript 6 入门参考深入浅出ES6 let和const let和const都...
    郭子web阅读 1,768评论 0 1
  • Lua 5.1 参考手册 by Roberto Ierusalimschy, Luiz Henrique de F...
    苏黎九歌阅读 13,729评论 0 38
  • 第十一回 庆寿辰宁府排家宴见熙凤贾瑞起淫心 这回讲贾敬的寿宴。贾敬过生日,自己躲清净,在道观里修行不回来,宁国府倒...
    西丝轩主阅读 259评论 0 1
  • 如同等待自己的死期一样 无能为力又只能默默祈祷 希望结果能好一点再好一点 可以如自己所愿
    烟花宝阅读 216评论 1 1
  • 风轻轻吹过, 掠过她的脸庞。 雨缓缓的下, 打湿了她的发梢。 你看那清澈的河水, 好似她清澈的眼眸。 你曾牵着她的...
    呵呵不知阅读 243评论 2 6