Skip to content

Домашнее задание: JS: Базовые знания

Notifications You must be signed in to change notification settings

servala/dz-js-basics

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 

Repository files navigation

Домашнее задание: Js. Основы

new

Согласно спецификации http://es5.github.com/#x11.2.2 напишите функцию, которая реализует оператор new под Firefox или Хром.

Скелет функции должен быть следующим

/**
 * @param {Function} Constructor
 * @param {Array}    [args]
 *
 * @return {Object}
 */
function myNew(Constructor, args) {}

Напишите тест, который порывает все особенности этого алгоритма. Будет здорово если вы приложите ссылку на jsfiddle.net

==

Согласно спецификации http://es5.github.com/#x11.9.3 реализуйте The Abstract Equality Comparison Algorithm

Скелет функции должен быть следующим

/**
 * @param {Mixed} x
 * @param {Mixed} y
 *
 * @return {Boolean}
 */
function myEqual(x, y) {}

В качестве функции Type используйте слудующую

/**
 * @param {Mixed} x
 *
 * @return {String}
 */
function Type(x) {
    return Object.prototype.toString.call(x).replace(/^\[object\s|\]$/g, '');
}

В качестве функции проверки на отрицательный ноль используйте следующую

/**
 * @param {Number} x
 *
 * @return {Boolean}
 */
function isNegativeZero (x) {
    return x === 0 && (1 / x) === -Infinity;
}

Напишите тест, который порывает все особенности этого алгоритма. Будет здорово если вы приложите ссылку на jsfiddle.net

См. также: пост про домашние задания.

Задание:
0) Чему равно [] + {}
1) Напишите функцию эмулирующую оператор new
2) в Разработке...

Ответы:

  1. [] + {}
    		Mассив преобразуется в пустую строку,  метод toString объекта выводит фразу - '[object Object]'
    

    Ответ : [] + {} = '' + '[object Object]' = '[object Object]'

  2. function A( arg ){ this.arg = arg; };
    function myNew ( foo, args ) { var obj = { '__proto__': foo.prototype }; foo.call ( obj, args ); return obj; };
    var a = myNew( A , 10 );
    console.log( a.arg );
  3. under constructions

About

Домашнее задание: JS: Базовые знания

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published