Conceptos básicos y actualizaciones de JavaScript

Introducción de JS:

JavaScript es un lenguaje de script dinámico orientado a objetos, que es la implementación de Microsoft de la especificación ECMAScript. Contiene tipos, operadores, objetos y métodos integrados estándar. No tiene nada que ver con Java. Se considera infracción.

Document Object Model (DOM):
DOM describe los métodos e interfaces para procesar contenido web.
Modelo de objetos del navegador (BOM):
BOM describe el método y la interfaz para interactuar con el navegador.

La forma en que se introdujo js

    (1)内嵌脚本
        <input type="button" value="button" onclick="alert('xxx')" />           
    (2)内部脚本
        <script type="text/javascript">
            alert("xxx");
        </script>
    (3)外部脚本
        首先先创建一个js文件
        其次在html中引入
            <script type="text/javascript" src="demo1.js"></script>

    js代码放在哪?
        放在哪都行 但是在不影响html功能的前提下 越晚加载越好

Métodos de salida comunes de JavaScript

document.write ()
escribe
console.log () en el documento y
envía la información a la consola de
alerta del navegador ()
muestra la información en forma de recuadro de advertencia.
innerHTML document.getElementById("placeholder").innerHTML = 'Hello World!!';
obtiene o establece el contenido HTML del objeto
javascript con un punto y coma como terminador. Perder el punto y coma puede causar errores inesperados.

Tipos de datos de JavaScript

Las variables de ECMAScript se escriben libremente, las llamadas de tipo libre se pueden usar para almacenar cualquier tipo de datos. En otras palabras, cada variable es solo un marcador de posición para guardar valores.
ag.
1. var flag;
2. var flag = verdadero;

Tipo de datos de JavaScript
1. La cadena se puede declarar con comillas simples o dobles.
2. Número Puede representar un número entero de 32 bits o un número de coma flotante de 64 bits. El primer dígito en octal debe ser 0, y el hexadecimal comienza con 0x.
3. Booleano verdadero y falso
4. Indefinido indica una variable no inicializada
alert(message);//undefined
5. Nulo indica un objeto que aún no existe. Puede borrar la variable
nulo == indefinido estableciendo el valor de la variable en nulo. El resultado es verdadero.

var message = null;
alert(typeof message); // "object"

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。这样只要直接
检查null值就可以知道相应的变量是否已经保存了一个对象的引用。如:
if(message != null){
// 对message进行某些操作
}

6, el objeto
var obj={"name":"javascript","age":21};
var obj2={};
propiedades de los objetos de acceso, obj [ 'nombre']
determina si el nombre del atributo en el objeto obj 'nombre' en obj

Al crear un objeto, si es necesario citar algún atributo, se deben citar todas las comillas. Si no se pueden citar todos los atributos, no se deben citar todos los atributos.
Puede usar el operador instanceof para determinar el tipo de objeto.

Conversión de tipo de datos

Reglas automáticas de conversión

convierte automáticamente en un valor booleano
cuando se espera JavaScript para ser encontrado en un valor booleano, el valor del parámetro booleano no se convertirá automáticamente en un valor booleano, por ejemplo, si la declaración de la parte condicional.

Cuando se utiliza operador ==:
convierten automáticamente a una cadena
convertir automáticamente la secuencia, principalmente se produce cuando la adición. Cuando un valor es una cadena y el otro valor no es una cadena, este último se convierte en una cadena.
Al convertir a String, use + ''.
convierte automáticamente en un numérica
generalmente automáticamente valor convertido cuando se realiza operaciones de tipo aritméticas.
Si un operando es un valor booleano, conviértalo a un valor numérico antes de comparar igualdad-falso a 0 y verdadero a 1;
si un operando es una cadena, el otro operando es un valor numérico, en Convierta la cadena a valor numérico antes de comparar la igualdad.
Si un operando es un objeto y el otro no lo es, se llama al método valueOf del objeto y el valor de tipo básico obtenido se compara de acuerdo con las reglas anteriores.

Operador de igualdad total (===), no se produce conversión de datos

var a = 5;
var b = "5";
console.log("a === b ? " + (a === b));
//判断字符串是否为空
if(!name){
}

Si la función se declara repetidamente, se sobrescribirá. Según la última declaración, no tiene nada que ver con el tiempo de llamada.
Las variables solo tienen alcance global y alcance local.
En el ámbito local, es promover la definición de lo último (variable o función) a la definición anterior.
La promoción de funciones solo se aplica a declaraciones de funciones, no a expresiones de funciones.
ag

var v="hello";
(function(){
    console.log(v);
    var v="world";
})();
结果显示undefined

Nota: En el alcance de la función, se ha mejorado la declaración de variables.
Pero JS no tiene alcance de bloque, ag

var v="hello";
if(true){
    console.log(v);
    var v="world";
};
显示hello

Método de conversión de tipo:

1. Al convertir a String, use + ''.
2. Convierta la cadena en número: use parseInt cuando el final de la cadena que se va a convertir contiene no números y se espera que se ignore.
console.log(parseInt('200px'),10);
Cuando use parseInt, debe especificar la base.
3. Al convertir a número, usualmente use +. número
ag. +str;
para eliminar el punto decimal, use Math.floor / Math.round / Math.ceil, no use parseInt.
4. Al convertir a booleano, use !!.
var num=3.14; !!num;

Sobre el tipo de número:

Hay tres funciones que pueden convertir valores no numéricos en valores numéricos: Number (), parseInt (), parseFloat ().
Number () se puede usar para cualquier tipo de datos, parseInt () y parseFloat () se usan específicamente para convertir cadenas en valores numéricos.
Las reglas de conversión de la función Number () son las siguientes:
si es un valor booleano, verdadero y falso se convierten a 1 y 0, respectivamente.
Si es un valor numérico, simplemente se pasa y se devuelve.
Si es un valor nulo, devuelve 0.
Si no está definido, devuelva NaN.
Si es una cadena, siga estas reglas:
si contiene solo números, ignore el 0 inicial para convertirlo a decimal, si contiene un número válido de coma flotante, conviértalo a número decimal de coma flotante
Si contiene hexadecimal válido, conviértalo a decimal.
Si es una cadena vacía, se convierte a 0.
Si contiene caracteres fuera de las reglas anteriores, conviértalo a NaN.

NaN, es decir, no numérico. No es igual a ningún valor, incluido el propio NaN.
La función isNaN () recibe cualquier tipo de parámetro y luego intenta convertirlo en un valor numérico. Un valor que no se puede convertir hace que la función devuelva verdadero

Otros tipos se convierten a tipo
booleano Booleano (cadena no vacía); // verdadero
booleano (cadena vacía); // falso
booleano (valor distinto de cero); // verdadero
booleano (0 y NaN); // falso
booleano (cualquiera Objeto); // verdadero
booleano (nulo); // falso
booleano (tipo indefinido); // falso

JSON

El nombre completo de JSON es JavaScript Object Notation (JavaScript Object Notation)
es un formato de intercambio de datos.
El método JSON.stringify se usa para convertir un valor en una cadena.
JSON. El método parse se usa para convertir una cadena JSON en un objeto.

BOM objetos comunes

El objeto de documento
para cada documento HTML cargado en el navegador será el objeto del documento
para que podamos acceder a todos los elementos en una página HTML a partir de la secuencia de comandos
se puede acceder por window.document

getElementById () devuelve una referencia al primer objeto con el id especificado
getElementsByName () devuelve una colección de objetos con el nombre especificado

ubicación 对象 document.write (location.href);

Objeto DOM

propiedad innerHTML
recupera el especificado nodo html contenido
var elementsHTML = HTMLElementObject.innerHTML;
proporcionado en el contenido HTML nodo especificado
HTMLElementObject.innerHTML = newHtmltext;

Tipo de evento

evento de carga

window.onload = function () {
    console.log('loaded');
}

haga clic en evento
cambiar evento

salida de JavaScript
usando window.alert () ventana de advertencia aparece.
Use el método document.write () para escribir contenido en un documento HTML.
Use innerHTML para escribir en elementos HTML.
Use console.log () para escribir en la consola del navegador.

Especificación de programación

1. No declares una función dentro de un bloque

//不要这样
if(x){
function foo(){}
}
这与ECMAscript原则相违背。如果确实需要,则建议使用函数表达式来初始化变量。
if(x){
var foo=function(){}
}

2. No incluya expresiones de función en el cuerpo del bucle, extraiga la función fuera del cuerpo de la función de antemano

function clicker(){
}
for(var i=0,len=ele.length;i<len;i++){
    var ele = ele[i];
    addEle(ele,'click',clicker);
}

3. La declaración for-in es una declaración de iteración precisa que se puede usar para enumerar los atributos de un objeto. La siguiente es la sintaxis de la instrucción for-in.
instrucción for (propiedad en expresión)
Las propiedades de los objetos en ECMAScript no tienen orden, por lo que el orden de los nombres de propiedades que se generan a través de bucles for-in es impredecible.
Ejemplo: el orden de desplazamiento de objetos en Safari y Chrome es inconsistente.

4. Funciones
Las funciones anónimas

一、
function square(number){
    ...
};
二、
var square = function(number){
    return number*number; };
var x = square(4);//16

三、
var fac = function fac(n){
    reurn n<2?1:n*fac(n-1);
};

Orden de actualización de resolución de nombres

Idioma construida> parámetros formales> declaración de la función> declaraciones de variables
si el mismo nombre, el nombre de la declaración de alta prioridad anularán una prioridad baja. Sin embargo, la inicialización del nombre se realiza en orden de escritura.

var foo;
console.log(typeof foo);
function foo(){};
foo="123";
console.log(typeof foo);
结果是:
fuction
string

Actualizar objeto de argumentos

Los parámetros reales de la función se almacenan en un objeto de argumentos similar a una matriz. Dentro de una función, se puede identificar entrante sigue
argumentos.
Donde i es el número ordinal del argumento, comenzando con 0. Entonces, el primer parámetro pasado será argumentos [0]. El número de parámetros está representado por
argumentos.length.

function myconcat(sepa){
var result="",
    i;
for(i=0;i<arguments.length;i++){
result=result+arguments[i]+sepa}
};
myconcat("-","red","green","black");
结果:
red-green-black-

También hay cierres, la ejecución inmediata de funciones, el modo zoom, el modo estricto, el constructor, etc., deben estudiarse y resumirse más a fondo.

Actualización-cierre:

Encuentre una comprensión más común de los cierres, que son funciones que pueden leer variables dentro de otras funciones.
Dado que en el lenguaje Javascript, solo las subfunciones dentro de una función pueden leer variables locales, el cierre puede entenderse simplemente como "una función definida dentro de una función".

 function f1(){
    var n=999;
    function f2(){
      alert(n); //999
    }
    return f2;
  }
  var result=f1();
  result(); // 999

f2 puede obtener el n de f1, y f2 puede obtener el valor de retorno fuera de f1. Primero entiendo aquí brevemente.

137 artículos originales publicados · Me gusta 123 · Visite 250,000+

Supongo que te gusta

Origin blog.csdn.net/lz20120808/article/details/76219917
Recomendado
Clasificación