LINUX.ORG.RU

История изменений

Исправление 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