Conocimiento de la versión
- ECMA Script (desarrollado por la organización ECMA) es la especificación y JavaScript es la implementación.
- ES5 (2009) 、 ES6 (2015) 、 ES7 (2016)
- El navegador IE tiene algunos problemas de soporte para ES5.
1. Modo estricto ('uso estricto'): haga que Javascript se ejecute en condiciones gramaticales más estrictas
- Variable: la declaración debe usar var
- Objeto: los atributos no se pueden repetir
- Función: la función personalizada no puede apuntar al objeto de la ventana, agrega alcance a la función eval
2. json: la sintaxis para almacenar e intercambiar información de texto
- json.stringFy (): objeto / matriz javascript a texto json.
- json.parse (): convierte texto json en objeto / matriz javascript.
Tres. Extensión de objeto
- 1.Object.create (prototype, [descriptors]): crea un nuevo objeto con el objeto especificado como prototipo
var obj = {
firstName:"张",lastName:'三'};
var newObj = null;
newObj = Object.create(obj,{
sex:{
value:"男",
writable:true,
configurable:true,
enumerable:true
}
});
- 2.Object.defineProperties (objeto, descriptores): extiende múltiples propiedades para el objeto especificado
var strongObj = {
firstName:"张",
lastName:'三',
get fullName(){
return this.firstName+this.lastName;
},
set fullName(name){
var arr = name.split("");
this.firstName = arr[0];
this.lastName = arr[1];
}
};
var obj = {
firstName:"张",lastName:'三'};
var strongObj1 = {
firstName:"张",lastName:'三'};
Object.defineProperties(strongObj1,{
fullName:{
get:function(){
return this.firstName+this.lastName;
},
set:function(name){
var arr = name.split("");
this.firstName = arr[0];
this.lastName = arr[1];
}
}
});
Four. Array extensión
- 索引 : Array.prototype.indexOf / lastIndexOf (valor)
- 遍历 : Array.prototype.forEach (función (elemento, índice) {})
- 映射 : Array.prototype.map (función (elemento, índice) {})
- 过滤 : Array.prototype.filter (función (elemento, índice) {})
var arr = [6,2,4,6,1,6];
console.log(arr.indexOf(6),arr.lastIndexOf(6));
arr.forEach(function(item){console.log(item)});
console.log(arr.map(function(item){return item+10}));
console.log(arr.filter(function(item){return item>4}));
Extensión de cinco funciones
- Function.prototype.bind (obj): vincula esto en la función a obj y devuelve la función
- Distinga entre vincular, llamar y aplicar: distinguir entre ejecutar inmediatamente o pasar parámetros
function fn(param){
console.log(this,param);
}
var obj = {name:"张三"};
fn("param");
fn.call(obj,"call_param");
fn.apply(obj,["apply_param"]);
fn.bind(obj,"bind_param")();//不会立即执行,常用在回调函数。