ES5 && ES6
、聞かせて
1.ブロックレベルのスコープは、唯一の有効なコードブロック変数が定義されてみましょう
2.let変数宣言は、(前に)進まない(リアは、あなたが最初の使用を定義しなければならないことを意味します)
3.定義は繰り返すことはできません、我々は同じスコープで同じ名前の変数を宣言することはできません
4.一時的なデッドゾーン(外部変数と同じ名前の内部変数は、内部変数は外部変数から遮断されている場合)
違いとVAR注意をしましょう:
変数1)ステートメントであるせてブロックレベルのスコープ(中括弧の対)、varは、関数スコープおよびグローバルスコープであります
注意:letが、グローバル変数、ローカル変数、変数のブロックレベルのスコープを定義することができます。(コードと関連する位置を書き込み)
2)変数宣言を強化するために主張しないしましょう、varステートメントは、アップグレードされます
3)書き込みコードから、VARことができ、名前を付けることができない変数が宣言されてみましょう。
二つは、constが唯一の変数読みます
のみを変更するために使用CONST変数
読み取り専用変数はまた、定数と呼ばれるが
、それは、データ内の変数にのみアクセスできることを意味し、CONSTを意味しており、変更することができない(読み取り専用)、「読み取り専用」
修正のconst変数は初期値を割り当てる必要があります
CONSTは、(変性)メモリに直接変更されます
参照メモリ領域の2つのタイプがあります。
これは、参照型記憶されたアドレスのメモリ領域、示されたデータ配列要素を表します。
三、このバインド
この資料の内容
あなたがの形で関数を呼び出すときは1)。これは、常にウィンドウです
2)イベントハンドラでは、これはイベントソースです。
2.bind(これは再オブジェクトを参照)(のみ匿名関数サービス用)
3.callと適用
基本的に(内部のこの機能)を適用属するオブジェクトとコールの機能を変更します
誰引数が、これがあるさ
Object.call(これ、OBJ1、OBJ2、OBJ3)
Object.apply(この、引数)
四
、JSON.parse / JSON.stringfy
直接変換JSON文字列オブジェクトと
JSONオブジェクトに文字列:JSON.parse
JSONオブジェクトを文字列に変換:. JSONの文字列化
VAR列str = '{ "ID": "123"、 "名前": "456"}';
聞かせてOBJ = JSON.parse(STR);
console.log(obj.id)。
console.log(obj.name)。
聞かせてSTR1 = JSON.stringfy(OBJ)。
console.log(str1.id)。
console.log(str1.name)。
五、のために与中のため
strArrを聞かせて= [];
{(strArrインデックスを聞かせて)ため
console.log(strArr [インデックス])。
}
{(strArrのTを聞かせて)ため
console.log(T)。
}
拡張六弦
文字列が別の文字列に含まれているかどうかを決定します
ES5のindexOf(パラメータ)
ES6は、文字列パラメータが見つかったかどうかを示すブール値を返し(パラメータ)を含みます
startsWith(パラメータ)は、ブール値を返す場合、ヘッダーソースのパラメータ文字列
endsWith(パラメータ)は、ブール値を返す場合、ソース文字列の末尾にパラメータ
(匿名関数用)七の矢印機能
1.例:X => X * 5が関数に対応する(X){戻りX * 5}
箭头函数相当于匿名函数,省略了return和花括号
2.有名函数 let 函数名=参数=>函数体
eg:let num=(x=>x*5)(8) //传入参数x=6,自运行
console.log(num) //30
let num=function(x){
return x*5
return x*5
}
3.函数需要多个参数,参数需要花括号括起来
(x,y)=>x>y?x:y;
4.返回值是个对象
var f=(id,name)=>({id:id,name:name});
//等价于:
返回的是对象
var f=(id,name)=>({
return {id:id,name:name}
});
红色括起来的圆括号不能省略,因为对象的花括号和函数的花括号冲突了
箭头函数的优点:
对this转移的处理,箭头函数内部的this是词法作用域,由上下文确定
八、解构赋值(针对于数组、对象)批量给变量赋值
优点:1. 可以让一个函数返回一个的值
2. 可以实现两个数的交换
3.可以将多个变量进行初始化
eg: let a=1;b=22;t;
a=a+b;
b=a-b;
a= a-b;
console.log(a,b);
eg: let [v1,[v2,v3],[v4,v5]] = [12,[23,34],[56,67],[5,6]];
console.log(v1);
console.log(v2);
console.log(v3);
console.log(v4);
console.log(v5);
let {name,age} = {name:"dahuang",age:18};
console.log(name,age);
九、Set和Map
set特点:自动去重,无下标
let set = Set([2,3,5,6,2,3,2,1]);
console.log(set.size); //5
for(let t of set){
console.log(t);
}
set集合的方法:
add(参数) 向集合中添加一个元素
delete(参数) 删除集合中某个数
has(参数) 判断集合中是否含有某个值
clear(参数) 清空集合中的元素
from(参数) 将集合转为数组
Map : 键值对
set() 向集合中添加一个元素
get(键) 根据键去取值
delete( 键) 删除集合中的某个数
has(键) clear(参数) 清空集合中的元素
from(参数) 将集合转为数组
Map的遍历
for(let t of map){
console.log(t[0] + t[1]); //0代表key,1代表value
}
十、Symbol
1.表示独一无二的值,它是基本类型中的一种。
2.它是内置基本对象,不能使用new关键字来使用。let symbol = Symbol();
let symbol1 = symbol("heihei");
let symbol2 = symbol("heihei");
console.log(symbol1 === symbol2); //false
let age =Symbol();
var a = {
name:"老王";
[age]: 18 ;
hobby: "写代码";
};
for(let i in a){
console.log(a[t]); //老王
//写代码
}
console.log(a[age]); //18
二