Переменные, определенные вне функции, должны быть глобальными переменными; Переменные, определенные внутри функции, если VAR объявлена, то переменная является локальной переменной. Если VAR не объявлено, то переменная является глобальной переменной.
1. Глобальные и локальные переменные JavaScript var global = "global"; test (); function test () {var local = "local"; Document.Writeln (Global); document.writeln (local);} document.writeln (global); document.writeln (local);2. Два вида печенья
i) Постоянные файлы cookie будут храниться на жестком диске клиента.
ii) Ответить cookie: он не будет храниться на жестком диске клиента, но будет помещен в память о процессе браузера. Когда браузер будет закрыт, ответ Cookie будет уничтожен.
3. В JavaScript функция - это объект
4. В Javascript нет концепции перегрузки метода (функции)
5. Функциональный объект
В JavaScript есть объект функции, и все пользовательские функции имеют тип объекта функции. Все параметры, принятые функцией объекта, имеют тип строки, последний параметр - это орган функции, который будет выполнен, а предыдущий параметр - это параметры, которые функция действительно должна принять.
6. Аргументы неявных объектов
В JavaScript каждая функция имеет неявные аргументы объекта, представляющие параметры, фактически переданные функции. Arguments.length представляет количество фактически пройденных параметров.
7. Function name.length
Каждый объект функции имеет атрибут длины, указывающий количество параметров, которые функция ожидает принять. Это отличается от аргументов функций. Arguments.length представляет количество параметров, фактически принятых функцией.
8. Существует пять примитивных типов данных в JavaScript
Неопределенный, нулевой, логический, номер и строка. (Примечание: в JavaScript не существует типа данных Char) тип данных)
Существует только одно значение для неопределенного типа данных: не определен;
Существует только одно значение для нулевого типа данных: NULL;
Существует два значения логического типа данных: true и false;
9. Оператор TypeOF
TypeOF - это унаговый оператор, за которым следует имя переменной. Он используется для получения типа данных переменной. Его возвратные значения: неопределенные, логические, число, строка и объект.
10. В JavaScript, если функция не объявляет возвращаемое значение, она вернет взаимосвязь между неопределенным 11, нулевым и неопределенным
Неопределенный на самом деле получен из нулевого. Например:
Отношения между нулевым и неопределенным
JavaScript
предупреждение (неопределенное == null); // браузер возвращает истинность
11. преобразование принудительного типа
В JavaScript есть 3 каска: Boolean (значение), номер (значение), строка (значение).
12. объект объекта
В JavaScript все объекты унаследованы от объектов объектов.
Объект объекта
JavaScript
var object = new object (); for (var v in object) {alert (v);}В приведенном выше коде браузер ничего не печатает, что не означает, что объект объекта не несет никаких атрибутов. Следующий код проверяет, можно ли перечислять свойства в объекте объекта. Если false возвращается, это означает, что свойства в объекте объекта не могут быть перечислены.
Свойства в объектах объектов не могут быть перечислены
JavaScript
Alert (object.propertyIsenumerable («Прототип»));
Если браузер всплывает ложное диалоговое окно, это означает, что свойства в объекте объекта не могут быть перечислены.
Далее, давайте посмотрим, можно ли перечислять свойства в окне.
Свойства в оконных объектах перечисляются
JavaScript
для (var v in window) {console.log (v);}В Chrome мы увидим много свойств, распечатанных в консоли отладки браузера, что указывает на то, что свойства в окне можно перечислять.
13. В JavaScript вы можете динамически добавить атрибуты объекта или динамически удалить атрибуты объекта.
Динамически добавить/удалить свойства объектов
JavaScript
var object = new object (); alert (object.username); // undefined object.username = "zhangsan"; alert (object.username); // zhangsan object ["password"] = "123"; alert (object.password); // 123 удалить object.username; // undefined object.username = "zhangsan";
14. Наиболее распространенный способ определения объектов в JavaScript
Самый распространенный способ определения объектов
JavaScript
var object = {username: "Zhangsan", пароль: 12345}; alert (object.username); alert (object.password);15. Массив
Определение массива
JavaScript
// Метод 1 var array = new Array (); Array.push (1); Array.push (2); Array.push (3); Alert (Array.length); // Метод 2 (рекомендуется) var array = [1,25,4]; Array.sort (); Alert (Array);
Вызовите метод сорта () массива, и браузер печатает 1, 25, 4, что не является результатом, который мы ожидаем.
Для метода вида массива JavaScript он сначала преобразует контент, который будет сортирован в строку (называемый метод toString ()) и сортировать его в порядке строк.
Следующий метод может получить ожидаемые результаты (отсортированные по размеру массива):
Сортировка массива
JavaScript
функция сравнить (num1, num2) {var temp1 = parseint (num1); var temp2 = parseint (num2); if (temp1 <temp2) {return -1; } else if (temp1 == temp2) {return 0; } else {return 1; }} var array = [1,25,3]; array.sort (compare); alert (массив);Затем мы реализуем его в анонимных функциях:
Анонимная сортировка функций
JavaScript
var array = [1,25,3]; array.sort (function (num1, num2) {var temp1 = parseint (num1); var temp2 = parseint (num2); if (temp1 <temp2) {return -1;} else if (temp1 == temp2) {return 0;} else {return 1;}}); предупреждение (массив);16.
Расширить свои свойства и методы на основе существующих объектов
JavaScript
var object = new object (); // добавить атрибут name object.name = "Zhangsan"; // Добавить метод sayname object.sayname = function (name) {this.name = name; Alert (this.name);}; object.sayname ("kyle"); // вызовать метод Sayname, атрибут имени изменяется на Кайл, а браузер будет печатать КайлСамый простой способ не удобен для использования и подходит для временного требования объекта.
ii) Создать объекты на заводе
Фабричный метод без параметров:
JavaScript
// factory method function createObject () {var object = new object (); // Создать объект object.name = "Zhangsan"; // Добавить атрибут имени object.password = "123"; // Добавить атрибут пароля. }; возврат объект; // возвращать этот объект} var object1 = createObject (); // Календарь Календарь. Метод ForeObject Factory для создания объекта1var object2 = createObject (); // Вызов фабричного метода createObject для создания объекта объекта2object1.get (); // Вызовать метод объекта.Фабричный метод с параметрами:
JavaScript
function createObject (name, password) {var object = new object (); object.name = name; Object.Password = пароль; object.get = function () {alert (this.name+","+this.password); }; return object;} var object1 = createObject ("Zhangsan", "123"); var object2 = createObject ("lisi", "456"); object1.get (); object2.get ();Недостатки приведенных выше двух заводских методов без параметров и параметров:
Каждый раз, когда создается объект, в памяти создается метод GET, который является пустой тратой памяти и влияет на производительность. И наше ожидание состоит в том, чтобы создать два разных объекта, свойства которых различны, но методы общины. Итак, нам нужно улучшить метод фабрики CreateObject.
Улучшенный заводский подход:
JavaScript
function get () {alert (this.name+","+this.password);} function createObject (name, password) {var object = new Object (); object.name = name; Object.Password = пароль; object.get = get; return object;} var object1 = createObject ("Zhangsan", "123"); var object2 = createObject ("lisi", "456"); object1.get (); object2.get ();Определите метод получения вне функции CreateObject, чтобы метод GET использовался для каждого созданного объекта. Сделайте общий объект функции по нескольким объектам, а не каждый объект, имеющий объект функции.
iii) Метод конструктора для создания объекта
Конструктор без параметров:
JavaScript
function person () {// Перед выполнением первой строки кода, двигатель JS генерирует для нас объект this.name = "Zhangsan"; this.password = "123"; this.getInfo = function () {alert (this.name+","+this.password); }; // Здесь есть неявное возвращение, чтобы вернуть ранее сгенерированный объект (который также отличается от заводского метода)} var p1 = new Person (); p1.getInfo ();Конструктор с параметрами
JavaScript
Функция Person (имя, пароль) {this.name = name; this.password = пароль; this.getInfo = function () {alert (this.name+","+this.password); };} var p1 = новый человек ("Zhangsan", "123"); var p2 = новый человек ("lisi", "456"); p1.getInfo (); p2.getInfo ();iv) Прототип (прототип) создание объекта
Прототип является свойством в объекте объекта
прототип
JavaScript
function person () {} person.prototype.name = "zhangsan"; person.prototype.password = "123"; Person.prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = new Person (); var p2 = new Person (); p1.name = "kyle"; // После создания объекта измените атрибут p1.getInfo (); p2.getInfo ();Есть две проблемы с простой использованием прототипов: во -первых, вы не можете назначить начальные значения атрибутам в конструкторе, и вы можете изменить значения атрибута только после того, как объект генерируется.
прототип
JavaScript
function person () {} person.prototype.name = new Array (); Person.prototype.password = "123"; Person.prototype.getInfo = function () {alert (this.name+","+this.password);}; var p1 = new Person (); var p2 = new Person (); p1.name.push ("zhangsan"); p1.name.push ("lisi"); p1.password = "456"; p1.getinfo (); p2.getinfo ()Браузер будет печатать: Zhangsan, Lisi, 456 и Zhangsan, Lisi, 123.
Если объект создается с использованием метода прототипа, все сгенерированные объекты будут использовать свойства в прототипе, и если объект изменит свойство, он также будет отражен в других объектах. Следовательно, невозможно просто использовать метод прототипа, и его также необходимо объединить с другими методами. Мы продолжим представлять его дальше.
Используйте прототип + конструктор для определения объектов
JavaScript
function person () {this.name = new Array (); this.password = "123";} person.prototype.getinfo = function () {alert (this.name+","+this.password);}; var p1 = new Person (); var p2 = new Person (); p1.name.push ("zhangsan"); p2.name.push ("lisi"); p1.getinfo (); p2.getinfo ();Используйте метод прототипа + конструктора для определения объектов. Свойства между объектами не мешают друг другу, и каждый объект имеет один и тот же метод. Это лучший способ.
v) Динамический метод прототипа
JavaScript
function person () {this.name = "Zhangsan"; this.password = "123"; if (typeOf person.flag == "undefined") {alert ("вызывается"); Person.prototype.getInfo = function () {alert (this.name + "," + this.password); } Person.flag = true; }} var p1 = new Person (); var p2 = new Person (); p1.getInfo (); p2.getInfo ();В методе динамического прототипа в конструкторе все объекты совместно используют метод через величины флагов, и каждый объект имеет свои собственные атрибуты. Когда приведенный выше код впервые создает объект, он сначала использует утверждение суждения, чтобы увидеть, был ли атрибут флага. Если это не определено, добавьте метод GetInfo через прототип, а затем установите флаг на True. Затем, когда объект создается во второй раз, оператор IF считается ложным, а выполнение пропускается. Это достигает желаемого результата, созданные свойства объекта не мешают друг другу, и методы объекта используются.
17. Наследование объектов в JavaScript (5 способов)
Первый метод: подражание объектам
Имитировать объект наследование
JavaScript
// Председательствующая функция класса Parent (username) {this.username = username; this.sayhello = function () {alert (this.username); };} // Функция подкласса Child (имя пользователя, пароль) {// Следующие три строки кода являются наиболее критическими this.method = parent; this.method (имя пользователя); Удалить это.method; this.password = пароль; this.sayworld = function () {alert (this.password); };} var p = new Parent ("Zhangsan"); var c = новый ребенок ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ()Второй метод: call ()
Второй метод реализации наследования, метод вызова, метод вызова - это метод, определенный в объекте функции, поэтому каждая функция, которую мы определяем, имеет этот метод. Первый параметр метода вызова будет передаваться в функцию, начиная с второго параметра, и присваивается параметрам в функции один за другим.
Позвоните в наследство родительского класса
JavaScript
Function Test (str) {alert (this.name+","+str);} var object = new objДалее мы используем метод вызова для реализации наследования объектов
JavaScript
// Председательствующая функция класса Parent (username) {this.username = username; this.sayhello = function () {alert (this.username); };} // Функция подкласса Child (имя пользователя, пароль) {parent.call (this, username); this.password = пароль; this.sayworld = function () {alert (this.password); };} var p = new Parent ("Zhangsan"); var c = новый ребенок ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();Третий метод: Apply ()
Применить наследие родительского класса
JavaScript
// Председательствующая функция класса Parent (username) {this.username = username; this.sayhello = function () {alert (this.username); };} // Функция подкласса Child (имя пользователя, пароль) {parent.apply (это, новый массив (имя пользователя)); this.password = пароль; this.sayworld = function () {alert (this.password); };} var p = new Parent ("Zhangsan"); var c = новый ребенок ("lisi", "123"); p.sayhello (); c.sayhello (); c.sayworld ();Метод применения очень похож на метод вызова. Метод применения также является методом, определенным в функциональном объекте, поэтому каждая функция, которую мы определяем, имеет этот метод.
Существует разница между методом применения и методом вызова: parent.apply (это, новый массив (имя пользователя)); Второй параметр прошел массив, в то время как метод вызова передал некоторые дискретные параметры данных. Нельзя сказать, что эти два метода являются хорошими и плохими, это зависит от конкретного сценария использования.
Четвертый метод: метод прототипа цепи (не может передать параметры конструктору)
Прототип цепочка наследования
JavaScript
function parent () {} parent.prototype.hello = "hello"; parent.prototype.sayhello = function () {alert (this.hello);}; function child () {} child.prototype = new parent (); Child.prototype.world = "world"; Child.prototype.sayworld = function () {alert (this.world);}; var c = new Child (); C.sayhello (); c.sayworld ();Недостатки простого использования метода прототипов цепочки: нет способа передать параметры, вы можете подождать только до того, как объект не будет создан перед его изменением. Давайте решим эту проблему в сочетании с другими способами.
Пятый метод: смешанный метод (рекомендуется)
Используйте гибридные методы для реализации наследования объектов
JavaScript
function parent (hello) {this.hello = hello;} parent.prototype.sayhello = function () {alert (this.hello);} function child (hello, world) {parent.call (this, hello); this.world = world;} child.prototype = new parent (); child.prototype.sayworld = function () {alert (this.world);} var c = new Child ("hello", "world"); c.sayhello (); c.sayworld ();Приведенное выше резюме базовых точек знания JavaScript (рекомендуется) - это весь контент, которым я делюсь с вами. Я надеюсь, что вы можете дать вам ссылку, и я надеюсь, что вы сможете поддержать Wulin.com больше.