Какова цель вызоваЧто цель, если (TYPEOF окно! == «не определено»)
if (typeof window !== 'undefined')
Я видел его в JSPM plugin-css, а также некоторые другие библиотеки.
Какова цель вызоваЧто цель, если (TYPEOF окно! == «не определено»)
if (typeof window !== 'undefined')
Я видел его в JSPM plugin-css, а также некоторые другие библиотеки.
Это проверка, выполняется ли сценарий в веб-браузере или нет.
В веб-страницы, есть несколько встроенных объектов, таких как window
, другие среды (например, Node.js) не будет иметь window
, но может иметь и другие объекты, такие как console
(ну, console
существует в настоящее время в большинстве браузеров в настоящее время, но это было не изначально).
Это может использоваться для определения того, работает ли код в типичной среде браузера (например, в среде с DOM браузера) или в какой-либо другой среде JS, поскольку объект window
существует в типичном браузере JS, но не существует в что-то вроде node.js или даже webWorker в браузере.
Если window
объект не существует, то
typeof window === 'undefined'
так код, который вы спросили о:
if (typeof window !== 'undefined')
выполнит if
блок, если window
объект существует в качестве переменной верхнего уровня ,
В конкретном коде, который вы связали, он должен не выполнять код, ориентированный на браузер, который ссылается на объекты DOM, такие как document
, если плагин используется в среде, отличной от браузера.
@dandavis - откуда появился ваш комментарий о 'Workers()? Я ничего не говорил о 'Workers()'. – jfriend00
@ dandavis - Я не понимаю, какой код webWorker должен быть связан с этим вопросом. Извините, но я просто не понимаю ваш комментарий. Этот код обнаруживает наличие браузера типа «окна». Это само по себе может рассказать вам, существует ли DOM и соответствующие объекты (vs. node.js, где они этого не делают), но он не может рассказать вам все, что вы, возможно, захотите узнать о своей среде. Некоторые другие вещи в окружающей среде могут потребовать других тестов (которые не были предметом вопроса). И в конкретном коде, на который делается ссылка, он используется для определения возможности использования DOM. – jfriend00
второстепенным является то, что не у всех браузеров JS есть объект верхнего уровня _window_, например Workers, но типичный - вы правы;) – dandavis
для автора этого кода, и, как он используется, он спрашивает: «Я работаю в chrome или node.js?» ... этот отличный гибридный код работает в «обоих» местах работает javascript. – dandavis