В чем разница между числом и числом в javascript?

Выход:

var x = 5;
typeof (x) //will give number type as output

Но для приведенного ниже кода он возвращает false:

var x = 5;
x instanceof Number; //will give false as output

Кто-нибудь может объяснить разницу между числом и числом. А как заставить вторую работать?


person Azan Momin    schedule 21.12.2017    source источник
comment
Чтобы добавить к вышесказанному, для второго блока, поскольку x имеет тип number, он должен вывести true, что не так?   -  person Azan Momin    schedule 21.12.2017
comment
Что вы имеете в виду, как заставить его работать? Какова твоя цель? Если вы хотите проверить, является ли переменная числом, вы сделаете typeof x === 'number', как в первом коде.   -  person JJJ    schedule 21.12.2017
comment
Прочтите developer.mozilla.org/en- US / docs / Web / JavaScript / Reference / для получения дополнительной информации, следует прояснить это   -  person user184994    schedule 21.12.2017
comment
Какова ваша цель выполнения второй работы?   -  person zabusa    schedule 21.12.2017


Ответы (2)


typeof(x) всегда возвращает строку, которая представляет тип, к которому принадлежит x.

Оператор instanceOf использует свойство prototype, чтобы определить, принадлежит ли экземпляр классу или нет.

x instanceof Number; в вашем случае возвращает false, потому что x является примитивом и никогда не вернет true. Если вы действительно хотите, чтобы он возвращал истину, вы можете «обернуть» свой примитив в Number класс следующим образом:

new Number(x) instanceof Number; //will give TRUE as output

person Val    schedule 21.12.2017

как заставить второй работать?

Оператор instanceof проверяет, является ли данная переменная объект класса. По определению MDN,

Оператор instanceof проверяет, появляется ли свойство prototype конструктора где-нибудь в цепочке прототипов объекта.

Чтобы заставить его работать, вам нужно создать экземпляр переменной, используя конструктор Number class '(или любой из его дочерних классов'):

var x = new Number(5);
x instanceof Number // true
person 31piy    schedule 21.12.2017