Вы можете использовать SslStream . Ссылка на документацию содержит пример TCP-сервера и клиента, которые обмениваются данными через SSL.
Через Крокфорда :
function typeOf(value) {
var s = typeof value;
if (s === 'object') {
if (value) {
if (value instanceof Array) {
s = 'array';
}
} else {
s = 'null';
}
}
return s;
}
Основное упоминание Крокфорда о неудаче - невозможность правильно определить массивы которые были созданы в другом контексте, например, окно
.
Эта страница имеет гораздо более сложную версию, если этого недостаточно.
Существует несколько решений со всеми их причудами. Эта страница дает хороший обзор. Одним из возможных решений является:
function isArray(o) {
return Object.prototype.toString.call(o) === '[object Array]';
}
Я заметил, что кто-то упомянул jQuery, но я не знал, что была функция isArray ()
. Оказывается, он был добавлен в версии 1.3.
jQuery реализует его так, как предлагает Питер:
isArray: function( obj ) {
return toString.call(obj) === "[object Array]";
},
Уже поверив в jQuery (особенно в его методы кросс-браузерной совместимости), я либо обновлюсь до версии 1.3, и используйте их функцию (при условии, что обновление не вызывает слишком много проблем) или используйте этот предложенный метод непосредственно в моем коде.
Большое спасибо за предложения.
Вы также можете использовать:
if (value instanceof Array) {
alert('value is Array!');
} else {
alert('Not an array');
}
Это кажется мне довольно элегантным решением, но для каждого свое.
Редактировать:
Начиная с ES5 теперь также:
Array.isArray(value);
Но это не работает в старых браузерах, если вы не используете полифиллы (в основном ... IE8 или аналогичные).