JavaScript高級(二)
16447 ワード
今日は主にES 5の補足内容を共有します.後はES 6の部分を書き続けます.よろしくお願いします.
理解ESフルネーム:ECMAScript js言語規格 私達が使っているjsはその実現 です. jsの構成 ECMAScript(jsベース) 拡張–ブラウザ端 BOM DOM 拡張–サーバ端 Node.js ES 5厳格モード 運転モード:通常モードと厳格モード は厳しいフォーマットを適用します. 作用: は、Javascriptをより厳しい条件で を実行させる. Javascriptの文法のいくつかの不合理さ、不謹慎さを取り除いて、いくつかの奇異な行為を減らします. コードの運行の一部の安全性をなくし、コードの運行の安全性を保証する. 覚えておく必要があるいくつかの変化 宣言定義変数はvar を使用しなければならない.は、カスタム関数のthisキーがグローバルオブジェクト を指すことを禁止する.は、evalスコープを作成し、より安全な .
JSONオブジェクト 作用:jsonオブジェクト/配列とjsオブジェクト/配列との相互変換に用いる . JSON.strigify(Obj/arr)jsオブジェクト(配列)は、jsonオブジェクト(配列) に変換される. JSON.parse(json)Jsonオブジェクト(配列)は、jsオブジェクト(配列) に変換される. Object拡張 Object.create:新しいオブジェクトを作成します. は、指定されたオブジェクトを元に新たなオブジェクトを作成する .は、新しい属性を指定し、属性について説明する. value:指定値 writable:現在の属性値が修正可能かどうかを識別し、デフォルトはtrue です. get方法:現在の属性値を得るためのコールバック関数 set方法:現在の属性値の変化を監視するためのコールバック関数 Object.defineProperties(object,descriptors):拡張された複数の属性を指定対象に定義する Aray拡張 Aray.prototype.indexOf:取得値は、配列内の最初の下付き である. Aray.prototype.lastIndexOf(value):配列内の最後の値を得る Aray.prototype.forEach(function(item,index)::遍歴行列* Aray.prototype.map(function(item,index):遍歴行列は新しい配列を返します.* Aray.prototype.filter(function(item,index)::エルゴードフィルタリングされたサブアレイ* Function拡張 Function.prototype.bind(obj) は、関数内のthisをobjに結合し、関数を に戻す.
面接試験問題:bind()とcall()とappy()を区別しますか? fn.bind(obj):関数のthisを指定し、関数 を返します. fn.call:関数のthisを指定し、関数 を呼び出します.
var obj={name:‘kobe’}
function fun(msg){consolie.log(this,msg)}
//fun.call(obj,123)//fun.apply(obj、[123])//bind修正thisはfun.bind(obj,123)を指す();
set Timeout(function(){consolove.log(this)//window}.bind(obj)、1000) Date拡張 Date.now():現在時間値 を取得する.
理解ES
'use strict'; //
var username = 'kobe';
var age = 43;
console.log(username, age);
// this window
function Person(name) {
this.name = name;
}
new Person('kobe');
// eval ,
var a = 2;
eval('var a = 123; alert(a)')
console.log(a);
//
var obj = {
name: 'kobe',
name: 'wade'
}
console.log(obj.name);
var obj = {
name : 'curry', age : 29}
var obj1 = {
};
obj1 = Object.create(obj, {
sex : {
value : ' ',
writable : true
}
});
obj1.sex = ' ';
console.log(obj1.sex);
//Object.defineProperties(object, descriptors)
var obj2 = {
firstName : 'curry',
lastName : 'stephen'
};
Object.defineProperties(obj2, {
fullName : {
get : function () {
return this.firstName + '-' + this.lastName
},
set : function (data) {
var names = data.split('-');
this.firstName = names[0];
this.lastName = names[1];
}
}
});
console.log(obj2.fullName);
obj2.firstName = 'tim';
obj2.lastName = 'duncan';
console.log(obj2.fullName);
obj2.fullName = 'kobe-bryant';
console.log(obj2.fullName);
var arr = [1, 2, 3, 4, 5, 2, 2, 3];
console.log(arr.indexOf(2));
console.log(arr.lastIndexOf(3));
var newArr = arr.map(function(item, index) {
// console.log(item, index);
// return
return item + 10;
})
console.log(newArr);
console.log(arr);
// filter
var newArr2 = arr.filter(function(item, index) {
return item > 3;
})
console.log(newArr2);
var arr3 = [1, 2, 3];
arr3.push(4);
console.log(arr3);
arr3.forEach(function(item, index) {
console.log(item, index);
})
var obj={name:‘kobe’}
function fun(msg){consolie.log(this,msg)}
//fun.call(obj,123)//fun.apply(obj、[123])//bind修正thisはfun.bind(obj,123)を指す();
set Timeout(function(){consolove.log(this)//window}.bind(obj)、1000)