1.json к строке
Кода -копия выглядит следующим образом:
функция json2str (o) {
var arr = [];
var fmt = function (s) {
if (typeof s == 'Object' && s! = null) return json2str (s);
return /^(String|number) $/.test(typeof s)? "'" + s + "'": s;
};
для (var i in o) arr.push ("'' + i +" ': " + fmt (o [i]));
return '{' + arr.join (',') + '}';
}
2. Преобразовать временные метки на сегодняшний день
Кода -копия выглядит следующим образом:
Функция fromUnixtime (timeStamp) {
if (! timestamp || timestamp <1000 || timeStamp == '') return "";
var thedate = новая дата (parseint (timestamp) * 1000);
вернуть thedate;
}
3. Формат
Кода -копия выглядит следующим образом:
// автор: Meizz
// Расширение даты, преобразовать дату в строку в указанном формате
// 1-2 заполнители могут использоваться в течение месяца (M), дня (D), часа (H), минуты (M), секунд (S) и квартала (Q).
// год (y) может использоваться с 1-4 заполнителями, миллисекунд могут использовать только 1 заполнителя (это 1-3-цифровое число)
// пример:
// (новая дата ()). Формат ("yyyy-mm-dd HH: MM: Ss.S") ==> 2012-12-02 08: 12: 04.423
// (новая дата ()). Формат ("yyyy-md H: m: ss") ==> 2012-12-02 8: 12: 4.18
Date.prototype.format = function (fmt) {
var o = {
"M +": this.getMonth () + 1, // месяц
"D+": this.getDate (), // день
"H+": this.gethours (), // часы
"M+": this.getMinutes (), // min
"S+": this.getSeconds (), // sec
"q +": math.floor ((this.getmonth () + 3) /3), // Quarterly
"S": this.getMilliseconds () // MS
};
if (/(y+)/.test(fmt))
fmt = fmt.Replace (regexp. $ 1, (this.getbleear () + "") .substr (4 - regexp. $ 1.length));
для (var k in o)
if (new regexp ("(" + k + ")"). Тест (FMT))
fmt = fmt.replace (regexp. $ 1, (regexp. $ 1.length == 1)? (O [k]): (("00" + o [k]). substr (("" + o [k]). Длина)));
вернуть FMT;
};
4. Добавить n дней на сегодняшний день
Кода -копия выглядит следующим образом:
функция addday (номер) {
вернуть из Unixtime (новая дата (). getTime () / 1000 + 24 * 60 * 60 * номер);
}
5. При использовании IFRAME, взаимный вызов между родительской формой и формой дочерней формы
Кода -копия выглядит следующим образом:
// Функции родительской формы вызовы в детской форме
window.frames ['ifm_id']. ValueChange ("id_101");
// детская форма вызывает функцию родительской формы
parent.refreshtree ("nodeid_202");
6. всплывающая форма и возвращаемое значение
Кода -копия выглядит следующим образом:
// всплывающая форма
var url = "http://www.baidu.com";
win = window.showmodaldialog (url, window, "Dialogleft: 400; Dialogtop: 200; Dialogwidth: 560px; Dialogheight: 380px; прокрутка: да; menubar: нет;
// Установить возвратное значение в всплывающей форме
var result = new Array ();
результат [0] = "id_101";
результат [1] = "name_202";
window.returnValue = результат;
window.close ();
7. JavaScript Scope [только глобальная область объема и функции, JavaScript не имеет блокировки]
Кода -копия выглядит следующим образом:
// 1. Глобальная область
var id = "глобальная переменная"; // 1.1 переменная, определенная вне функции
функция showmsg () {
Сообщение = "Глобальное сообщение"; // 1.2 переменные, которые непосредственно назначены без определения
// определить как глобальную переменную при первом использовании
}
// 2. Функциональная область
функция doCheck () {
var data = "function data"; // 2.1 переменные, определенные внутри функции
}
8. Механизм наследования JavaScript
Кода -копия выглядит следующим образом:
// 1. Наследование подражания объекта
Функция Person (strname) {
// частные поля
var name = strname;
// публичные методы
this.getName = function () {
вернуть имя;
};
}
Функция студента (strname, strschool) {
// Определите свойства и методы родительского класса
this.parent = человек;
this.parent (strname);
Удалить это. PPARENT; // удалить временную переменную родитель
// Определите новые свойства и методы
// частные поля
var School = strschool;
// публичные методы
this.getschool = function () {
возвращение школы;
};
}
// 2. Позвоните (..) или примените (..) Наследование объекта Фунции
// Разница между вызовом и применением:
// Второй параметр вызова является переменным параметром;
// второй параметр применения - массив;
Функция животного (strname, intage) {
// частные поля
var name = strname;
var age = интенсивность;
// публичные методы
this.getName = function () {
вернуть имя;
};
this.getage = function () {
Возврат возраст;
};
}
Функция Cat (Strname, Intage, Strcolor) {
// Определите свойства и методы родительского класса
Animal.call (это, strname, интенсивность);
// Animal.Apply (это, новый массив (strname, интенсия));
// Определите новые свойства и методы
// частные поля
var color = strcolor;
// публичные методы
this.getInfo = function () {
вернуть "имя:" + this.getName () + "/n"
+ "Возраст:" + this.getage () + "/n"
+ "Цвет:" + Цвет;
};
}
// 3. Прототип наследование
// Прототип объявленных свойств и методов разделяются всеми объектами
// прототип будет использоваться только при чтении атрибутов
Function.prototype.extend = function (superclass) {
// F здесь состоит в том, чтобы избежать подклассов доступа к свойствам This.xxx в родительском классе
функция f () {};
F.prototype = superclass.prototype;
// конструктор родительского класса
this.superConstructor = SuperClass;
this.superclass = superclass.prototype;
this.prototype = new f ();
this.prototype.constructor = this;
};
Function.prototype.mixin = function (props) {
для (var p в реквизите) {
this.prototype [p] = props [p];
}
};
Функция () {}
Box.prototype = {
getText: function () {
вернуть this.text;
},
setText: function (text) {
this.text = text;
}
};
Функциональный флажок () {}
Facebox.extend (Box);
Facebox.mixin ({
ischecked: function () {
вернуть это. Провернул;
},
SetChecked: function (проверка) {
this.cecked = проверить;
}
});
9. Позвоните, примените и связывайте
Кода -копия выглядит следующим образом:
// этот AARG представляет объект, указанный этим, когда находится веселье внутри
// Call & Apply сразу же выполнит удовольствие и вернет результат
var result = fun.call (thisarg, arg1, ...);
var result = fun.apply (thisarg, [argsarray]);
// этот AARG представляет объект, указанный этим, когда находится веселье внутри
// bind возвращает анонимную функцию
var tmpfun = fun.bind (thisarg);
var result = tmpfun (arg1, ...);
Кода -копия выглядит следующим образом:
<script type = "text/javascript">
/**
* Расширить функциональность функции
*/
Function.prototype.bind = function (obj) {
var method = this;
var tmpfun = function () {
return Method.apply (obj, аргументы);
};
вернуть tmpfun;
}
function parent () {
this.name = "parent";
}
function child () {
this.name = "ребенок";
this.getName = function (время) {
Вернуть время + "" + this.name;
};
}
var parent = new Parent ();
var Child = new Child ();
предупреждение (child.getName (1)); // Покажите 1 ребенка
Alert (child.getName.call (родитель, 2)); // Показать 2 Parent [Call & Apply будет выполнен немедленно]
var tmpfun = child.getName.bind (parent); // bind не будет выполнено немедленно
предупреждение (tmpfun (3)); // показывать 3 родителя
</script>
10. js "=="
Кода -копия выглядит следующим образом:
Правила конверсии
Если операнд является логическим значением, преобразовать его в число перед сравнением: false -> 0, true -> 1;
Если один операнд - это число, а другой операнд - это строка, то преобразование строки в число до сравнения;
Если один операнд является объектом, а другой - это число или строка, объект будет преобразован в примитивный тип перед сравнением.
Двигатель сначала попытается вызовать значение (), если значение () не переопределяет или возвращает объект,
Затем двигатель попытается вызвать ToString (), и если ToString () не имеет переопределения или возврата объекта, исключение брошено;
Если два объекта сравниваются, определите, относятся ли они к одному и тому же объекту;
Если операнд - нан, == вернет false,! = Вернуть true;
NULL и Undefined вернется false по сравнению с другими значениями.
Но null == null, не определен == не определен, null == не определен;
Нулевые и неопределенные не могут быть преобразованы в другие значения при участии в сравнении;