- JS Основы объектно-ориентированного подхода
-
Функции — это объекты, а объекты — это функции.
-
Метод вызывается непосредственно как функция, а метод вызывается как объект с помощью new.
- В JavaScript нет синтаксиса класса. Он имитируется замыканием функции. В следующем объяснении по-прежнему используются понятия классов и конструкторов в C#. "Классы", такие как String и Date в JavaScript, называются "объектами". , очень странно , легкий для понимания новичками, не строгий. Класс объявляется в JavaScript (класс — это не класс, это объект).
-
Пример (напишите объект Person):
- function Person() { } //ok, Это так просто.
-
Как использовать объекты Perosn?
- var p=new Person(); // "var p" не является "Person p".
- p.Name='Zhang San';//Динамический язык, поэтому его можно писать напрямую.
- p.Age=30;
- p.SayHello=function() { предупреждение('Привет~'); }
- alert(p.Name);
- оповещение(p['Возраст']);// Еще один способ динамического доступа к свойствам.
Примечание:
Замыкание: простое понимание состоит в том, что функции («внутренние функции») определяются в функциях («внешние функции»), а «внутренние функции» могут использоваться вне «внешних функций».
В JavaScript нет синтаксиса класса. Он имитируется замыканием функции. В следующем объяснении по-прежнему используются понятия классов и конструкторов в C#. "Классы", такие как String и Date в JavaScript, называются "объектами". , очень странно , легкий для понимания новичками, не строгий. Класс объявляется в JavaScript (класс — это не класс, это объект).
- JavaScript также поддерживает это ключевое слово
- Создает объект Person с параметрами. Используйте ключевое слово this, чтобы присвоить значения свойствам объекта.
function Person(name, age) {
this.Name = name;
this.Age = age;
this.ShowInfo = function() {
alert('Всем привет, меня зовут ' + this.Name + ', в этом году' + this.Age + ' устарело.'); }}
var zjl = new Person('Джей Чоу', 20);
zjl.ShowInfo();
Функция Person(name, age) может рассматриваться как конструктор объявлений, а такие атрибуты, как Name и Age, также динамически добавляются пользователем. [var p1 = Person("Jay Chou", 20);//Не теряйте новое, иначе оно станет вызывающей функцией, p1 не определено. ]new эквивалентен созданию экземпляра функции.
- String объект (*)
- свойство length: получить количество символов в строке. (Независимо от того, китайские иероглифы или английские иероглифы считаются за 1 символ.)
- Метод charAt(index): получить символ в указанной позиции индекса. (индекс начинается с 0)
- Метод indexOf('string', startIndex): получить позицию первого вхождения указанной строки. startIndex указывает, с какого числа начать поиск.
- split('delimiter', limit);//Возвращаем строку в виде массива в соответствии с разделителем. limit указывает максимальную длину возвращаемого массива (настраиваемый). Используйте регулярные выражения для нескольких разделителей: var msg = 'a★b★c☆d☆e#f';var vals = msg.split(/☆|★|#/);alert(vals);
- substr(startIndex,len)//Из startIndex перехватить len символов.
- substring(startIndex,stopIndex)//Начать с startIndex, перехватить позицию stopIndex (исключая символ, в котором находится stopIndex).
- toUpperCase()//Преобразовать верхний регистр, toLowerCase();//Преобразовать нижний регистр
- методы match(), replace(), search(), связанные с регулярными выражениями
Пример:
var uname = new String('я не красавица, ха-ха10086');
1 , charAt использование
alert(uname.length);
alert(uname.charAt(6)); //Вернуть женщину, а не красоту, индекс начинается с 0.
alert(uname.indexOf('h', 5)); //Начинаем поиск h с символа с индексом 5, если перед символом с индексом 3 стоит h, игнорируем его.
2 , match использование
var reg = /\w+/g;
//При использовании глобального режима g возвращаем все совпадающие элементы непосредственно в массив
var result = uname.match(reg);
alert(result.length);
for (var i = 0; i < result.length; i++) {
alert(result[i]);
} // результат: 3 часа ха-ха10086
3 , replace
// Не игнорируйте глобальный шаблон g здесь, иначе может быть сопоставлен только первый соответствующий элемент
//После добавления g вы можете заменить все элементы, соответствующие регулярному выражению
var result = uname.replace(/a/g, 'X');
alert(result);//Результат: X я не красавица hXhX10086
4 , match и search метод
// метод search() и метод indexOf() возвращают индекс первого вхождения найденной строки,
//Только метод search() может использовать регулярные выражения, а indexOf() может записывать только строки.
var result = uname.search(/\d{5}/);
var resultIndexof = uname.indexOf('10086');
оповещение(результат);//результат: 11
alert(resultIndexof);//результат: 11
5 , split() использование:
//Первый параметр — разделитель, а второй параметр — максимальное количество возвращаемых элементов.
var result = uname.split(',', 3);
оповещение(результат.длина);//результат: 1
for (var i = 0; i < result.length; i++) {
alert(result[i]);
}//Результат: я не красавица haha10086
6 , substr() использование:
//Начнем с символа с индексом 2, перехватим 3 символа, и индекс начнется с нуля.
var result1 = uname.substr(2, 3);
alert(result1);//Результат: нет h
7. Использование подстроки():
//Начинаем перехват со 2-го индекса и перехватываем до 3-го индекса. (за исключением символа в 3-м индексе)
var result2 = uname.substring(2, 3);
alert(result2);
- Array объект
- Объект Array в JavaScript — это массив, во-первых, это динамический массив, и он является сверхсложным, как массив, ArrayList, Hashtable и т. д. в C#.
- Как использовать массив:
var names = new Array();//Нет необходимости инициализировать длину, динамическая
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
Примечание. В JavaScript массивы разрежены. Это означает, что нижние индексы массива должны попадать в непрерывный диапазон массива, и только те элементы, которые фактически хранятся в массиве, могут позволить интерпретатору JavaScript выделить память только для элементов с нижними индексами 0 и 1000 массива, а не для элементов. с нижними индексами от 0 до 1000 выделяют память.
a[0]=1;
a[1000]="это элемент 1000";
- Цикл по массиву (цикл for):
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
Конечно, это предполагает, что массив является непрерывным и начинается с 0. Если это не так, перепроверьте, определен ли каждый элемент. пример:
for(var i=0;i<names.length;i++)
{
If (names[i])
Alert(names[i])
}
- Цикл по массиву (цикл forin): аналогично foreach в С#.
for (var i in names) {
alert(names[i]);//Каков прямой вывод i?
}
Используйте цикл forin для перебора всех свойств объекта. [Демонстрация: обход объекта окна]
Цикл forin фактически проходит по ключу.
- Несколько других способов объявления массивов:
new Array();
new Array(size);
new Array(element0, element0, ..., elementn);
var arr = ['Китай', 2008, true, 'Привет']; (рекомендуется.)
arr[0]à'China'
arr[1]à2008
- удалить элемент массива
Оператор удаления устанавливает для массива неопределенное значение, но сам элемент продолжает существовать.
Методы удаления элемента:
Метод Array.shift() удаляет первый элемент массива, а метод Array.pop() удаляет последний элемент. Метод Array.splice() удаляет непрерывный диапазон элементов из числа.
Примечание:
=================Другие методы массива==========================
Array.join("строка подключения")//Соединяем элементы массива через указанную "строку подключения" и возвращаем строку.
Var a={1,2,3};
Var s=a.join();//s=”1,2,3”;
Array.reverse();//Поменять местами элементы в массиве.
Array.sort();//сортировка
Сортирует массив по исходному массиву и возвращает отсортированный массив.Если вы вызываете sort() без передачи аргумента, он сортирует массив в алфавитном порядке.
var a = new Array("banana", "chery", "apple");
a.sort();
var s = a.join('|');
alert(s); //результат: яблоко | банан | вишня
Если массив находится в другом порядке, в качестве аргумента функции sort() должна быть передана функция сравнения, которая определяет, какой из двух ее аргументов будет первым, а какой последним в отсортированном массиве.
SortByAsc(a,b){
return a-b;
}
Array.sort(SortByAsc);
пример:
var a = new Array("banana", "chery", "apple","dfg");
a.sort(function(a, b) {
if (a > b) {
return -1;
}
else {
return 1;
}
});
var s = a.join('|');
оповещение(я); //результат: dfg|chery|банан|яблоко
Метод concat()
Может создавать и возвращать массив, содержащий исходные элементы массива, из которого была вызвана функция concat(), за которыми следуют аргументы функции concat(). Если некоторые из аргументов являются массивами, они будут расширены, но учтите, что метод concat() не может рекурсивно расширить массив массивов.
var a = [1, 2, 3];
var b = a.concat(4, 5);//результат: 1,2,3,4,5
var c = a.concat([4, 5]);//результат: 1,2,3,4,5
var d = a.concat([4, 5], [6, 7]);//результаты: 1,2,3,4,5,6,7
Var e = a.concat (4, 5, [6, [7, 8, 9]); // Результат:, 1, 2, 3, 4, 5, 6, [7, 8, 9]
for (var i in b)
{
alert(b[i])
}
Метод slice(): возвращает срез указанного массива.
Его параметр указывает начальную и конечную точки возвращаемого фрагмента. Возвращаемый массив содержит элемент, указанный первым параметром, и элементы от этого элемента до позиции элемента, указанной вторым параметром, но не содержит элемент, указанный вторым параметром. Если есть только один аргумент, возвращаемый массив будет содержать все элементы от начальной позиции до конца исходного массива. Если он отрицательный, он из последнего элемента.
var a = [1, 2, 3, 4, 5, 6];
var b = a.slice(0, 3);//результат: 1,2,3
var c = a.slice(3);//результат: 4,5,6
var d = a.slice(1, -1);//результаты: 2,3,4,5,
var e = a.slice(-3, -2);//результат: 4
Метод splice() — это универсальный метод для вставки или удаления элементов массива.
Первый параметр Splice() указывает позицию в массиве элемента, который нужно вставить или удалить. Второй элемент указывает количество элементов, которые необходимо удалить из массива. Если второй параметр опущен, все элементы от начала до конца массива будут удалены. Splice() возвращает массив с удаленными элементами или возвращает пустой массив, если элементы не удалены.
var a = [1, 2, 3, 4, 5, 6, 7, 8, 9];
a.splice(4);//Результат: a=[1,2,3,4];
a.splice(1, 2);//Результат: a=[1,4];
a.splice(1, 1);//Результат: a=[1];
Первые два аргумента функции splice() определяют удаляемый массив. После этих двух параметров может быть любое количество параметров, они указывают элемент, который нужно вставить, начиная с позиции, указанной вторым параметром.
var a=[1,2,3,4,5];
a.splice(2, 0, 'a', 'b');//Результат: a=[1,2,a,b,3,4,5]
a.splice(2, 2, [1, 2], 3);//Результат: удалить a,b a=[1,2,[1,2],3,3,4,5]
- Dictionary
- Массив в JS — это сокровище, не только массив, но и словарь или стек (коллекция стека, а не словарь).
var pinyins = new Array();
пиньинь["люди"] = "жэнь";
пиньинь["коу"] = "коу";
пиньинь["рука"] = "шоу";
оповещение (пиньинь ["человек"]);
оповещение (пиньинь.человек);
- Упрощенный способ создания стиля словаря:
var arr = {"человек":"рен","рот":"коу"};//формат json.
- Используйте Hashtable, Dictionary и будьте такими же эффективными, как они.
- Вы не можете пройти напрямую с помощью цикла for, вам нужно использовать цикл forin.
- Массивы в стиле словаря имеют длину 0. Поэтому его нельзя пройти с помощью for.
Примечание:
Пока у вас есть массив, у вас есть массив, список и хеш-таблица одновременно.
var arr = new Array();
arr[0] = "tom";
arr[1] = "jim";
for (var i in arr) {//Отпечатки 0, 1, 2... Доказательство того, что использование массива является частным случаем использования словаря.
alert(i+arr[i]);
}
- Json объект
- Объект представляет собой неупорядоченный набор «пар имя/значение». Объект начинается с «{» (левая скобка) и заканчивается «}» (правая скобка). За каждым «именем» следует «:» (двоеточие); «пары «имя/значение»» разделяются «,» (запятая).
- Массив — это упорядоченный набор значений. Массив начинается с «[» (левая скобка) и заканчивается «]» (правая скобка). Используйте "," (запятая) для разделения значений.
- ценность(value) может быть строкой в двойных кавычках (string), число, истина, ложь, ноль, объект или массив. Эти структуры могут быть вложенными.
-
-
var arr={"имя":"том","возраст":18",электронная почта":'tom@itcast.cn'};
-
Формат Json можно рассматривать как объект.
- имя, возраст, адрес электронной почты
-
var arr=[ {"name":"steve","age":18}, {"name":"steve","age":18}];//json массив объектов.
-
Использование формата JSON для передачи данных в Ajax очень удобно.
-
пример:
====================JSON========================
1.
var ****personalInfo ****= {"имя": ****"Джей Чоу", ****"возраст": ****20, ****"адрес":{ "city": ****"beijing", ****"country": ****"China" } };
****alert ( personalInfo . name );
****alert ( personalInfo . age );
****alert ( personalInfo . address . city );
****alert ( personalInfo . address . country );
2.
var ****students ****= [{ "id": ****"1001", ****"name": ****"james" } , { "id": ****"1002", ****"name": ****"bob" }];
****for ( var ****i ****= ****0 ; i ****< ****students . length ; i++ ) {
****alert ( students [ i ]. id ****+ ****"===>" ****+ ****students [ i ]. name );
}
- метод расширения ( * )
- Метод расширения задается через прототип объекта класса, а метод кавычек (с символами с обеих сторон) добавляется к объекту String ниже.
String.prototype.quote = function(quotestr) {
if (!quotestr) {
quotestr = "\"";
}
return quotestr + this + quotestr;
};
alert("abc".quote()); alert("abc".quote("|"));
- Объявление метода расширения выполняется до использования метода расширения. JS-функции не имеют специального синтаксиса значения функции по умолчанию, но вы не можете передать значение параметру.Значение параметра, которому не передается значение, не определено, и вы можете по своему усмотрению задать значение по умолчанию.