0 Судья, инициализируются ли переменные и параметры
if (x) {} // Инициализируется переменная или переменная не пустая или переменная не ноль.Функция 1 декларации не требует объявления возвращаемого значения или типа параметров, а конец предложения даже не требует »;
Функция сумма (i1, i2) {return i1+i2}2 направленно объявляйте анонимные функции для немедленного использования
var f = function (i1, i2) {return i1+i2;}; Alert (f (1,2)); // Обычное предупреждение о анонимной функции (функция (i1, i2) {return i1+i2;} (3,4)); // Непосредственно объявить, используйте немедленно3-JS не имеет концепции класса, поэтому некоторые методы выглядят как классы
Функция Person (имя, возраст) {this.name = name; // динамично добавлять атрибуты, аналогично динамическому a в c#. A = new DepartObject (); this.age = возраст; this.sayhello = function () {alert («Привет, мое имя«+name+'i am'+age+'лет. // Звоните p1.gender = 'Male' как класс; // динамично добавить оповещение атрибута «Пол» (p1.gender);4-маячевые объекты-это массивы, и вам не нужно предопределять длину массива.
var arr = new Array (); arr [0] = 0; arr [1] = 1; arr [2] = 2; for (var i = 0; i <= arr.length-1; i ++) {alert (arr [i]);}5-Array-это массив, а также словарь, а также стек
var dict = new Array (); // как словарь, используйте DICT ['i'] = 'wo'; dict ['love'] = 'ai'; dict ['you'] = 'ni'; alert (dict ['i']); // ЗАВЕРСТВОВАНИЕ ALERT (dict.love); // вызовы как вызов атрибутов (характеристики динамического языка) для (var k в dict) {// upress Alert (k); // 'i', 'love', 'you'-> print out key} for (var k of dict) {// learing alert (k); // 'wo', 'ai', 'ni'-> print out value} var arr = [1,2,3,4,5]; // Упрощенное метод создания массива arr = {"Lorry": 21, "Cloud": 20}; // Метод создания стиля словаря6-й-перенос всех элементов, которые можно вызвать на текущей странице
var s = null; for (var k в документе) {// свойства объекта являются s+= k+";";} alert (s);Операции подписания подписания 7-го использования, аналогичные массиву, чтобы получить символы в указанной позиции строки
var s = 'Привет, мир!'; s [0]; // 'H's [6]; // 's [12]; // '!' S [13]; // Неопределенные индексы вне диапазона не сообщат об ошибке, но они всегда будут возвращать неопределенные. Следует отметить, что строка неизменна. Если вы назначаете значение определенному индексу строки, ошибок не будет, но нет никакого эффекта: var s = 'test'; s [0] = 'x'; alert (s); // s все еще «тест»
8-капсул нижний регистр
var s = 'hello'; s.touppercase (); // вернуть 'hello' var s = 'hello'; s.tolowercase (); // вернуть 'Привет'
9-поиск для места, где появляется указанная строка
var s = 'hello, world'; s.indexof ('world'); // return 7s.Indexof ('World'); // не было обнаружено указанной подстроки, возврат -110-g-get подстроки строкового интервала индекса
var s = 'hello, world's.substring (0, 5); // начинать с индекса от 0 до 5 (исключая 5), вернуть 'hello's.substring (7); // начинать с индекса 7 до конца, вернуть «мир»
11-Javascript Объект-это неупорядоченный тип данных сбора, который состоит из нескольких пар ключевых значений.
var xiaoming = {name: 'Xiaoming', рождение: 1990, школа: «№ 1 средняя школа», рост: 1,70, вес: 65, оценка: null // Последняя пара ключевых значений не должна быть добавлена ','}; xiaming.name; // 'xiaoming'xiaoming.birth; // 1990 Доступ к атрибуту осуществляется через. Оператор, но это требует, чтобы имя атрибута было допустимым именем переменной. Если имя атрибута содержит специальные символы, оно должно быть заключено с []: var xiaohong = {name: 'xiaohong', «средняя школа»: '№ 1 средняя школа'}; xiaohong ['средняя школа']; // '№ 1 средняя школа' xiaohong ['name']; // 'xiaohong'xiaohong.name; // 'xiaohong'xiaohong.age; // неопределенный12-чтобы обнаружить, имеет ли Xiaming определенный атрибут, используйте оператор:
«Имя» в Xiaoming; // true'grade 'в xiaoming; // false *** Если в определении, что свойство существует, это свойство не может быть Xiaming, оно может быть унаследовано Xiaoming: «Tostring» в Xiaoming; // true *** Чтобы определить, принадлежит ли свойство самим Xiaming, а не унаследовано, вы можете использовать метод hasownproperty (): xiaoming.hasownproperty ('name'); // truexiaomaunce.hashownproperty ('tostring'); // ЛОЖЬ13 карт
var m = новая карта ([['Michael', 95], ['bob', 75], ['tracy', 85]]); // Метод инициализации 2D массива M.Get ('Michael'); // 95 var m = new Map (); // непосредственно инициализируйте пустой MapM.Set ('Adam', 67); // Добавить новый ключ-valuem.set ('bob', 59); М.Хас («Адам»); // будь то ключ 'Adam': truem.get ('Adam'); // 67m.delete ('Adam'); // Удалить ключ 'Adam'M.Get (' Adam '); // Неопределенный var m = new Map ([[1, 'x'], [2, 'y'], [3, 'z']]); for (var n of m) {// raverse map alert (n [1] + '=' + n [0]);}14-элементный встроенный метод FOREACH, который получает функцию и автоматически вызывает каждую итерацию.
var a = ['a', 'b', 'c']; a.foreach (функция (элемент, индекс, массив) {// элемент: укажите на значение текущего элемента // индекс: укажите на текущий индекс // массив: укажите на сам объект массива (элемент);}); SET похож на массив, но SET не имеет индекса, поэтому функция обратного вызова имеет максимум два параметра: var s = новый набор (['a', 'b', 'c']); s.foreach (function (element, set) {alert (element);}); Параметры функции обратного вызова карты - это значение значения, ключа и сама карта: var m = new Map ([[1, 'x'], [2, 'y'], [3, 'z']]); m.foreach (value, key, map) {alert (value);}); var a = ['a', 'b', 'c']; a.foreach (function (element) {alert (element);});Метод карты массива 15-ray (), пройдите в нашей собственной функции, и в результате вы получаете новый массив:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (function (x) {return x*x;}). Foreach (function (element) {alert (element); // [1, 4, 9, 16, 25, 36, 49, 64, 81]}); //;16-USE MAP () для преобразования всех чисел в массиве в строки:
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9]; arr.map (string); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
17-Use Array's Reduce () для совокупных расчетов
var arr = []; for (var x = 1; x <= 100; x ++) {arr.push (x); // Поместите 1 ~ 100 в массив} оповещение (arr.reduce (function (x, y) {return x+y; // кумулятивная сумма всех объектов arr, вернуть результат суммы}));18-USERED CREAND (), чтобы сделать потрясающее преобразование: преобразовать [1, 2, 5, 8, 0] в целое число 12580
var arr = [1, 2, 5, 8, 0]; alert (arr.reduce (function (x, y) {return x*10+y;}));19-USE FILTER () для фильтрации определенных элементов массива
var arr = [0,1,2,3,4,5,6,7,8,9];alert(arr.filter(function(x){return x%2===0;}));//0,2,4,6,8 // Return true, keep deletion of the empty string in an Array var arr = ['A', '', 'B', null, undefined, 'C', ' ']; alert (arr.filter (function (s) {return s && s.trim (); // Примечание: нет метода Trim () в версиях ниже IE9})); // ['a', 'b', 'c']Метод 20-Array's Sort () сначала преобразует все элементы в строку, а затем сортирует его, так что ...
[10, 20, 1, 2] .sort (); // [1, 10, 2, 20] Итак, если вы хотите сортировать по размеру номеров, вы можете написать это: var arr = []; for (var x = 1; x <= 10; x ++) {arr.push (x);} document.write (arr+"<br/>"); документ. Чтобы игнорировать влияние букв, вы должны сначала преобразовать в верхний или нижний регистр var arr = ['google', 'apple', 'microsoft']; alert (arr.sort (function (s1, s2) {var x1 = s1.touppercase (); var x2 = s2.touppercase (); return x1 <x2? False: true:}); // ['Apple', 'Google', 'Microsoft']Структура программы 21-ожора
① Присвоить функцию в качестве возвращаемого значения параметру, вызовите параметр, чтобы получить результат вычисления arr Arr = []; for (var n = 1; n <101; n ++) {arr.push (n);} function lazy_sum (arr) {var sum = function () {return arr.reduce (fund (x, y) {return x+y;}); } return sum;} var f = lazy_sum (arr); alert (f ()); ② Возвращенная функция не выполняется немедленно, но не выполняется до тех пор, пока f () не называется function count () {var arr = []; for (var i = 1; i <= 3; i ++) {arr.push (function () {return i * i;}); } return arr;} var results = count (); // Существует 3 функции FUNCESVAR F1 = Результаты [0]; var f2 = результаты [1]; var f3 = результаты [2]; f1 (); // 16 Возвращенная функция относится к переменной I, но она не выполняется немедленно. f2 (); // 16 Когда все три функции возвращаются, переменная, на которую я ссылался, стала 4, f3 (); // 16 Следовательно, конечный результат составляет 16 *** при возвращении закрытия, помните: не ссылайтесь на какие -либо переменные цикла или переменные, которые будут изменяться в будущем! ③ Что если вы должны ссылаться на переменные цикла? Метод состоит в том, чтобы создать другую функцию и использовать параметры функции для привязки текущего значения переменной цикла. Независимо от того, как изменяется переменная цикла в последующее время, значение, связанное с параметром функции, остается неизменным: function count () {var arr = []; for (var i = 1; i <= 3; i ++) {arr.push (function (n) {return function () {return n*n;}} (i)); } return arr;} var results = count (); var f1 = результаты [0]; var f2 = результаты [1]; var f3 = результаты [2]; оповещение (f1 ()); // 1alert (f2 ()); // 4alert (f3 ()); // 9 ④ В языках без механизма класса и только функции, с помощью закрытия, частная переменная может быть инкапсулированная функция creat_counter (init) {var n = init || 0; return {add: function () {n+= 1; возврат n; }}} var c = creat_counter (); alert (c.add ()); // 1alert (c.add ()); // 2alert (c.add ()); // 3 *** В возвращаемом объекте применяется закрытие, которое несет локальную переменную n, и переменная n не может быть получена из внешнего кода во всех. Другими словами, закрытие - это функция, которая несет состояния, и его состояние может быть полностью скрыто извне. ⑤ Используйте math.pow (x, y) для расчета x^2 или x^3 //math.pow(x, y)-> x^yfunction make_pow (y) {return function (x) {return math.pow (x, y); }} var pow2 = make_pow (2) var pow3 = make_pow (3) alert (pow2 (3)) // 9alert (pow3 (3)) // 27Функция 22-rrow (в настоящее время поддерживается только Firefox) // Параметры => Функциональное тело
var f = x => x*xxxalert (f (3)) // 27
23-генератор для генерации последовательностей Фибоначчи
функция* fib (max) {var t, a = 0, b = 1, n = 1; while (n <= max) {itlid a; t = a+b; a = b; b = t; n ++; } return a;} for (var x of fib (10)) {// итерация документа объекта генератора.write (x+''); // Вывод 0, 1, 1, 2, 3} Используйте генератор для генерации самостоятельного идентификатора (не требуется глобальная переменная)* next_id () {for (var x = 1; x <100; Liting x ++);} var g = next_id (); alert (g.next ()Выше приведено полное содержание записей самостоятельного изучения JavaScript (статья обязательно прочитав), принесенные вам редактором. Я надеюсь, что все будут поддерживать wulin.com больше ~