JavaScript 之 Global 对象知识点汇总

声明:本博客的知识点摘录自《JavaScript高级程序设计(第三版)》第五章,如有冒犯,请联系删除


Global对象与JavaScript中的Object、Array、String、Number对象一样,属于JavaScript中的单体内置对象,被封装在了原生JavaScript中。事实上,没有全局变量或全局函数;所有在全局作用域中定义的属性和函数,都是 Global 对象的属性。下面介绍一下Global对象的一些方法:

1、 isNaN()方法

NaN 本身有两个非同寻常的特点。首先,任何涉及 NaN 的操作(例如 NaN /10)都会返回 NaN ,这个特点在多步计算中有可能导致问题。其次, NaN 与任何值都不相等,包括 NaN 本身。

针对 NaN 的这两个特点,ECMAScript 定义了 isNaN() 函数。这个函数接受一个参数,该参数可以是任何类型,而函数会帮我们确定这个参数是否“不是数值” 。 isNaN() 在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如字符串 "10" 或 Boolean 值。而任何不能被转换为数值的值都会导致这个函数返回 true 。

alert(isNaN(NaN)); //true
alert(isNaN(10)); //false(10 是一个数值)
alert(isNaN("10")); //false(可以被转换成数值 10)
alert(isNaN("blue")); //true(不能转换成数值)
alert(isNaN(true)); //false(可以被转换成数值 1)

2、 isFinite()方法

要想确定一个数值是不是有穷的(换句话说,是不是位于最小和最大的数值之间) ,可以使用 isFinite() 函数。这个函数在参数位于最小与最大数值之间时会返回 true ,如下面的例子所示:

var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result)); //false

3、 parseInt()方法

 parseInt() 函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一

### JavaScript 中 BOM 的知识点总结 #### 1. **BOM 核心对象** BOM(Browser Object Model)的核心对象是 `window`,它代表了一个浏览器窗口或框架的实例。在浏览器环境中,`window` 不仅是一个用于访问浏览器窗口的接口,同时也是 ECMAScript 定义的 Global 对象。这意味着所有的全局变量和函数都自动成为 `window` 对象的属性和方法[^2]。 #### 2. **窗口之间的关系** - `top`: 指向最外层的框架。 - `parent`: 指向当前框架的父级框架。 - `self`: 指向当前窗口本身。 这些属性可以帮助开发者理解嵌套框架中的层次结构并进行相应的操作[^2]。 #### 3. **窗口位置管理** 可以通过以下属性获取窗口相对于屏幕的位置: - `screenLeft`, `screenTop`: 获取窗口左边缘和顶部距离屏幕的距离(适用于 IE 浏览器)。 - `screenX`, `screenY`: 同样用于获取窗口相对于屏幕的位置(适用于其他主流浏览器)。 还可以通过以下方法调整窗口的位置: - `moveTo(x, y)`: 将窗口移动到指定的绝对坐标。 - `moveBy(dx, dy)`: 将窗口按照给定的偏移量移动[^2]。 #### 4. **窗口大小控制** 可以使用以下属性来获取或设置窗口的大小: - `outerWidth`, `outerHeight`: 表示整个窗口的外部宽度和高度,包括工具栏、滚动条等。 - `innerWidth`, `innerHeight`: 表示视口区域的实际可见宽度和高度。 - `document.body.clientWidth`, `document.body.clientHeight`: 返回文档主体的内容宽高(不包含滚动条)。 - `resizeTo(width, height)`: 设置窗口的大小为指定的宽高。 - `resizeBy(dw, dh)`: 增加或减少窗口的宽高[^2]。 #### 5. **打开新窗口** `window.open(url, name, features)` 是用来创建新窗口的主要方法。其中: - `url`: 新窗口加载的目标地址。 - `name`: 窗口名称,如果已存在同名窗口,则会重用该窗口。 - `features`: 可选参数,定义新窗口的各种特性,如宽度、高度、是否显示菜单栏等。 #### 6. **关闭窗口** `window.close()` 方法允许关闭由脚本打开或者用户手动打开的窗口。需要注意的是,在某些现代浏览器中,只有当窗口是由同一脚本调用 `open` 创建时才能被成功关闭。 #### 7. **键盘事件处理** 对于键盘交互,BOM 提供了三种主要类型的键盘事件及其对应的属性: - `keydown`: 当按键被按下时触发。 - `keypress`: 当字符键被按压时触发;此事件通常只针对可打印字符有效。 - `keyup`: 当按键释放时触发。 常用的属性包括: - `keyCode`: 返回所按键的 ASCII 编码值,主要用于识别数字和字母键。 - `charCode`: 在 `keypress` 事件中返回实际输入字符的 Unicode 或 ASCII 值(注意兼容性问题)。例如,在实现功能替代时,可以用 Enter 键模拟 Tab 键的行为[^1]: ```javascript var inputs = document.querySelectorAll('input[type="text"]'); inputs.forEach(function(input, index) { input.addEventListener('keydown', function(event) { if (event.keyCode === 13 && index < inputs.length - 1) { // 如果按下Enter键 event.preventDefault(); // 防止默认行为 inputs[index + 1].focus(); // 移动焦点至下一个输入框 } }); }); ``` #### 8. **定时器** BOM 支持两种常见的计时方式: - `setTimeout(func, delay)`: 延迟一段时间后执行某次性的回调函数。 - `setInterval(func, interval)`: 按照固定的时间间隔重复执行某个函数。 取消它们分别需要调用 `clearTimeout(id)` 和 `clearInterval(id)` 来停止未完成的任务。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值