2015-01-07 17 views
-3

я нашел в HighStock JS они пишут синтаксис какЧто означает n = + Number || 0

n= +Number || 0 

может кто-нибудь, пожалуйста, expalin означает, что это значит?

Благодаря

+0

http://stackoverflow.com/questions/5450076/whats-the-significant-use-of-unary-plus-and- минус-операторы – chiliNUT

ответ

3

Это:

n= +Number || 0; 

переменная n будет присвоено значение, которое должно быть typeof == number. Если number является строкой, то +number будет сокращением для преобразования значений числа строк в число.

Таким образом, если значение имеет значение "20", то его значение строки и если вы его префикс +, то оно будет преобразовано в целое число, такое как 20.

Здесь:

n= +Number || 0; 

Integer 0 будет назначена, если нет значения в вар Number/или неопределенной.

var number = "20", nonumber; 
 

 
var n = +number || 0; 
 

 
$('p:eq(0)').text(n); 
 

 
var o = +nonumber || 0; 
 

 
$('p:eq(1)').text(o);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<p></p> 
 
<p></p>

+0

Унарный '+' не преобразуется в целое число. – user2864740

+0

@ пользователь2864740 не может вас достать. – Jai

+0

Пример: '+ '1.23'' Унарный плюс на строках является« своего рода »вроде' parseFloat', но он отличается. – user2864740

2

Это означает, что если Number переменная not defined или its not numeric затем присвоить 0 переменной n.

Пример

Example 1> 
var Number = 'test'; 
n= +Number || 0; 

O/P: 
n = 0 
-------------------------------------------- 
Example 2> 
var Number = 2; 
n= +Number || 0; 

O/P: 
n = 2 
-------------------------------------------- 
Example 3> 
n= +Number || 0; 

O/P: 
n = 0 
+0

Что означает '+' перед номером? – Girish

+0

Он проверяет, является ли его число (числовое значение) или нет –

+1

Вы ошибаетесь. Если 'Number = '2'' Тогда значением' n' будет '2'.Даже когда Number является строкой, его можно преобразовать в тип Number на '+'. – vjdhama

1

Так, по существу, когда у вас есть либо + или - перед переменной (то есть. +Number), переменная получает приведение к типу номер. Таким образом, либо это успешно, либо число является результатом, либо литье заканчивается, и возвращается NaN (N от aN umber).

Поскольку в большинстве браузеров Number относится к конструктору объекта для типа числа, то отливка из него в числовое значение не определено, и, таким образом, результат NaN, который JavaScript интерпретирует как ложное значение. Поэтому:

+Number || 0 == NaN || 0 == 0 

Если номер не определен локально и является номером (или может быть помещен в число).

Ниже описывается, как каждый тип получает отлиты в номер:

// Strings 
+"1.12345" = 1.12345 
parseFloat("1.12345") // Equivalent to 

// Boolean 
+True = 1 
+False = 0 
Number(True) // Equivalent 

// Array 
+[1] = NaN 
// Casting fails 

// Object 
+{1:1} = NaN 
// Casting Fails 

// Undefined 
+undefined = NaN 
// Casting Fails 

// Null 
+null = 0 
Number(null) // Equivalent 

// Hex encoded number 
+0x00FF = 255 
parseInt("0x00FF", 16) // Equivalent 

// Function 
+function(){} = NaN 
// Casting Fails 
Смежные вопросы