前言:
新来的同事问我该怎么判断未定义的变量是否存在,第一念头是a != undefined,但是这个显然是不对的,应该使用typeof检测
typeof是一个运算符,运算数可以是任何类型,返回值是一个字符串。
- undefined - 如果变量是 Undefined 类型的
- boolean - 如果变量是 Boolean 类型的
- number - 如果变量是 Number 类型的
- string - 如果变量是 String 类型的
- object - 如果变量是一种引用类型或 Null 类型的
注:这里又涉及javascript5大数据类型,查找资料时,在ECMAScript和javascript的关系上又杠上了......
看了javascript的实现后,我的理解是ECMAScript就是一个标准,制定了各种规范,定义了脚本语言的所有属性、方法和对象。而javascript是由ECMAScript、DOM和BOM组成。
DOM(文档对象模型)是 HTML 和 XML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。
BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:
- 弹出新的浏览器窗口
- 移动、关闭浏览器窗口以及调整窗口大小
- 提供 Web 浏览器详细信息的定位对象
- 提供用户屏幕分辨率详细信息的屏幕对象
- 对 cookie 的支持
IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象
参考链接:
时间: 2024-10-10 10:36:44