Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1391 (permalink)  
Старый 17.08.2015, 21:38
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

trikadin, отличить примитивный тип от другого ?
есть ли простой способ?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.

Последний раз редактировалось cyber, 17.08.2015 в 21:48.
Ответить с цитированием
  #1392 (permalink)  
Старый 18.08.2015, 00:18
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Сообщение от cyber
отличить примитивный тип от другого ?
typeof или уточкой:
function toString(any) {
    return Object.prototype.toString.call(any);
}

function noop() {}


alert(toString(1));
alert(toString('text'));
alert(toString(true));
alert(toString(Symbol()));
alert(toString(undefined));
alert(toString(null));


alert(toString(/1/));
alert(toString([]));
alert(toString({}));
alert(toString(noop));
alert(toString(new Date()));
alert(toString(new Map()));
alert(toString(new Set()));
alert(toString(new WeakMap()));
alert(toString(new WeakSet()));

кря-кря
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #1393 (permalink)  
Старый 18.08.2015, 01:26
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

nerv_, я знаю, просто интересно можно ли как то это сделать не проверяя на всем примитивы?
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #1394 (permalink)  
Старый 18.08.2015, 11:18
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

function isPrimitive(value) {
  return !(value instanceof Object);
}

?
Ответить с цитированием
  #1395 (permalink)  
Старый 18.08.2015, 11:40
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Erolast,

function isPrimitive(value) {
  return !(value instanceof Object);
}


alert( isPrimitive( new String( "h" ) ) );
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #1396 (permalink)  
Старый 18.08.2015, 12:09
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Так это и не строка-примитив, это String object. Там и другие странности есть:
console.log(new String("h") == new String("h")); //false
console.log(typeof new String("h") == "string"); //false
Ответить с цитированием
  #1397 (permalink)  
Старый 18.08.2015, 12:13
Аватар для cyber
I am Student
Отправить личное сообщение для cyber Посмотреть профиль Найти все сообщения от cyber
 
Регистрация: 17.12.2011
Сообщений: 4,415

Erolast, но посути это строка
__________________
Цитата:
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
Ответить с цитированием
  #1398 (permalink)  
Старый 18.08.2015, 12:21
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Строка, но не примитив. Объект.
Ответить с цитированием
  #1399 (permalink)  
Старый 18.08.2015, 12:30
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Если все же надо включать строки/числа/булевы-объекты (что крайне странно: они не ведут себя как примитивы), то можно так:
function isPrimitiveLike(value) {
    return value === null || value === undefined || [Boolean, Number, Symbol, String].indexOf(value.constructor) != -1;
}
Ответить с цитированием
  #1400 (permalink)  
Старый 18.08.2015, 12:39
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Есть код
class Parent {}

class Child extends Parent {
  constructor() {
    this.x = 1;
    super();
  }
}

на что бабель ругается
Цитата:
repl: Line 7: 'this' is not allowed before super()
5 | class Child extends Parent {
6 | constructor() {
> 7 | this.x = 1;
| ^
8 | super();
9 | }
10 | }
sandbox

1. Какого Лена Головач?
2. Разве это прописано в стандарте? Под "это" подразумеваю:
- обязательность вызова супер в ребенке в принципе
- обязательность вызова супер до работы с this в ребенке
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смишных картинок тред megaupload Оффтопик 3448 03.07.2023 09:47
React'а тред melky Оффтопик 246 13.11.2016 08:07
Webpack'а тред nerv_ Сборка проекта, утилиты 58 07.05.2016 13:46
Смешных историй тред monolithed Оффтопик 11 04.03.2015 04:20
Смишных видео с намеком тред godofjavascript Оффтопик 4 30.12.2012 23:50