История изменений
Исправление uin, (текущая версия) :
Это нормально, потому что в JS на самом деле нет типов (ну почти нет), есть объекты которые говорят что они такие-то типы, но это не так
>> typeof []
<- "object"
Похоже когда то их хотели сделать (всмысле наделать конструкций объектов которые будут говорить что они конкретные типы), но потом передумали в виду того что переосмыслили значимость типов для языков такого уровня.
var date = new Date() //--> Date "2016-10-05T05:09:33.000Z"
console.log(typeof date) //--> "object"
console.log(date + "- test_test") //--> "Wed Oct 05 2016 05:09:39 GMT+0000 (XXX) - test_test"
Объект который представляется строкой и ведет себя как строка, но при этом он не строка.
А что такое сама строка? Это хитрый объект который показывает и ведет себя как строка
>> new String(-123)
<- String { "-123", 0: '-', 1: '1', 2: '2', 3: '3', length: 4 }
>> var abcd = "abcd"
>> abcd.funct = function() {
console.log(typeof abcd)
}
<- function abcd.funct()
>> abcd.funct()
<- x TypeError: abcd.funct is not a function
Но все свойства которые мы ему задаем как обычному объекту он выбрасывает
var aColl = document.getElementsByTagName("a")
/* aColl: HTMLCollection [ <a#sitetitle>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, ещё 237… ] */
var sitetitle = document.querySelector("a#sitetitle")
aColl.indexOf(sitetitle);
//--> TypeError: aColl.indexOf is not a function
Серьезно, забудь о таких типах как int, float, string, char, они остались внизу, на уровне рантайма
В JS у тебя «типов» бесконечное множество
String
Number
Array
NodeList
HTMLCollection
ArrayBuffer
DataView
Date
...
SpiderMan
YuiHirasawa
Исправление uin, :
Это нормально, потому что в JS на самом деле нет типов (ну почти нет), есть объекты которые говорят что они такие-то типы, но это не так
>> typeof []
<- "object"
Похоже когда то их хотели сделать (всмысле наделать конструкций объектов которые будут говорить что они конкретные типы), но потом передумали в виду того что переосмыслили значимость типов для языков такого уровня.
var date = new Date() //--> Date "2016-10-05T05:09:33.000Z"
console.log(typeof date) //--> "object"
console.log(date + "- test_test") //--> "Wed Oct 05 2016 05:09:39 GMT+0000 (XXX) - test_test"
Объект который представляется строкой и ведет себя как строка, но при этом он не строка.
А что такое сама строка? Это хитрый объект который показывает и ведет себя как строка
[quote][quote] new String(-123)[br][/quote][/quote]<- String { "-123", 0: '-', 1: '1', 2: '2', 3: '3', length: 4 }
[quote][quote] var abcd = "abcd"[br] abcd.funct = function() {[br][/quote][/quote] console.log(typeof abcd)
}
<- function abcd.funct()
[quote][quote] abcd.funct()[br][/quote][/quote]x TypeError: abcd.funct is not a function
Но все свойства которые мы ему задаем как обычному объекту он выбрасывает
var aColl = document.getElementsByTagName("a")
/* aColl: HTMLCollection [ <a#sitetitle>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, ещё 237… ] */
var sitetitle = document.querySelector("a#sitetitle")
aColl.indexOf(sitetitle);
//--> TypeError: aColl.indexOf is not a function
Серьезно, забудь о таких типах как int, float, string, char, они остались внизу, на уровне рантайма
В JS у тебя «типов» бесконечное множество
String
Number
Array
NodeList
HTMLCollection
ArrayBuffer
DataView
Date
...
SpiderMan
YuiHirasawa
Исправление uin, :
Это нормально, потому что в JS на самом деле нет типов (ну почти нет), есть объекты которые говорят что они такие-то типы, но это не так
>> typeof []
<- "object"
Похоже когда то их хотели сделать (всмысле наделать конструкций объектов которые будут говорить что они конкретные типы), но потом передумали в виду того что переосмыслили значимость типов для языков такого уровня.
var date = new Date() //--> Date "2016-10-05T05:09:33.000Z"
console.log(typeof date) //--> "object"
console.log(date + "- test_test") //--> "Wed Oct 05 2016 05:09:39 GMT+0000 (XXX) - test_test"
Объект который представляется строкой и ведет себя как строка, но при этом он не строка.
А что такое сама строка? Это хитрый объект который показывает и ведет себя как строка
[quote][quote] new String(-123)[br][/quote][/quote]<- String { "-123", 0: '-', 1: '1', 2: '2', 3: '3', length: 4 }
[quote][quote] var abcd = "abcd"[br] abcd.funct = function() {[br][/quote][/quote] console.log(typeof abcd)
}
<- function abcd.funct()
[quote][quote] abcd.funct()[br][/quote][/quote]x TypeError: abcd.funct is not a function
Но все свойства которые мы ему задаем как обычному объекту он выбрасывает
var aColl = document.getElementsByTagName("a")
/* aColl: HTMLCollection [ <a#sitetitle>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, ещё 237… ] */
var sitetitle = document.querySelector("a#sitetitle")
aColl.indexOf(sitetitle);
//--> TypeError: aColl.indexOf is not a function
Серьезно, забудь о таких типах как int, float, string, char, они остались внизу, на уровне рантайма
В JS у тебя «типов» бесконечное множество
String
Number
Array
NodeList
HTMLCollection
ArrayBuffer
DataView
Date
...
SpiderMan
YuiHirasawa
Исходная версия uin, :
Это нормально, потому что в JS на самом деле нет типов (ну почти нет), есть объекты которые говорят что они такие-то типы, но это не так
>> typeof []
<- "object"
Похоже когда то их хотели сделать (всмысле наделать конструкций объектов которые будут говорить что они конкретные типы), но потом передумали в виду того что переосмыслили значимость типов для языков такого уровня.
var date = new Date() //--> Date "2016-10-05T05:09:33.000Z"
console.log(typeof date) //--> "object"
console.log(date + "- test_test") //--> "Wed Oct 05 2016 05:09:39 GMT+0000 (XXX) - test_test"
Объект который представляется строкой и ведет себя как строка, но при этом он не строка.
А что такое сама строка? Это хитрый объект который показывает и ведет себя как строка
[quote][quote] new String(-123)[br][/quote][/quote]<- String { "-123", 0: '-', 1: '1', 2: '2', 3: '3', length: 4 }
[quote][quote] var abcd = "abcd"[br] abcd.funct = function() {[br][/quote][/quote] console.log(typeof abcd)
}
<- function abcd.funct()
[quote][quote] abcd.funct()[br][/quote][/quote]x TypeError: abcd.funct is not a function
Но все свойства которые мы ему задаем как обычному объекту он выбрасывает
var aColl = document.getElementsByTagName("a")
/* aColl: HTMLCollection [ <a#sitetitle>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, <a>, ещё 237… ] */
var sitetitle = document.querySelector("a#sitetitle")
aColl.indexOf(sitetitle);
//--> TypeError: aColl.indexOf is not a function
Серьезно, забудь о таких типах как int, float, string, char, они остались внизу, на уровне рантайма
В JS у тебя «типов» бесконечное множество
String
Number
Array
NodeList
HTMLCollection
ArrayBuffer
DataView
Date
...
SpiderMan
YuiHirasawa