JavaScript高级程序设计 读书笔记之十一 内置对象Global

yizhihongxing

JavaScript高级程序设计 读书笔记之十一 内置对象Global

什么是全局作用域

在JavaScript中,全局作用域是整个程序的最高层次。全局变量会成为全局作用域的属性,全局函数会成为全局作用域的方法。在全局作用域中定义的变量和函数,在整个程序范围内都是可用的。

Global对象简介

Global是JavaScript中的一个全局对象,它不是构造函数,因此无法实例化。在浏览器端,Global对象的定义可以更进一步,它不仅是Window对象的一个属性,还是当前页面的全局作用域。Global对象拥有一些方法和属性,它们可以在任意作用域下直接访问。

全局函数

以下是一些常用的全局函数:

Escape和Unescape

Escape和Unescape函数分别用于将字符串转义成可以传输的ASCII码和将转义后的字符串还原成字符。例如:

let str = 'Hello, world!';
let encodedStr = escape(str);
console.log(encodedStr); // 输出: Hello%2C%20world%21
let decodedStr = unescape(encodedStr);
console.log(decodedStr); // 输出: Hello, world!

Eval

Eval函数用来执行一段字符串代码,将字符串解析为JavaScript代码并执行。但是由于Eval的执行会受到外部输入的影响,因此它可能会让代码变得不安全,因此在一般情况下,不建议使用Eval。

let str = 'console.log("Hello, world!")';
eval(str); // 输出: Hello, world!

ParseInt

ParseInt用于将字符串转换为整数,可以传入第二个参数来设置进制。

let num = parseInt('123');
console.log(num); // 输出: 123

ParseFloat

ParseFloat用于将字符串转换为小数。

let num = parseFloat('3.14');
console.log(num); // 输出: 3.14

全局属性

以下是一些常用的全局属性:

NaN

NaN表示非数字,直接进行数字运算时有可能得到NaN。

let result = 1 / 'hello';
console.log(result); // 输出: NaN

Infinity和-Infinity

Infinity和-Infinity分别表示无穷大和负无穷大。

console.log(1 / 0); // 输出: Infinity
console.log(-1 / 0); // 输出: -Infinity

undefined

undefined表示未定义,通常用于判断变量是否被定义。

let a;
if (a === undefined) {
  console.log('a is undefined');
}

代码示例

以下是一个计算斐波那契数列的函数,并使用全局作用域中的变量保存计算结果:

let memo = [0, 1];

function fibonacci(n) {
  if (memo[n] != null) {
    return memo[n];
  }
  return memo[n] = fibonacci(n - 1) + fibonacci(n - 2);
}

console.log(fibonacci(10)); // 输出: 55
console.log(fibonacci(20)); // 输出: 6765

在这个例子中,memo变量是在全局作用域中定义的。它用于保存计算结果,这样可以避免重复计算。

下面是一个使用Eval函数的例子:

let str = '1 + 2 + 3';
let result = eval(str);
console.log(result); // 输出: 6

在这个例子中,Eval函数将字符串解析成为JavaScript代码,然后执行这段代码,最终得到了计算结果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript高级程序设计 读书笔记之十一 内置对象Global - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • javascript实现文字无缝滚动效果

    当我们需要在网页中展示一些较长的文字或新闻时,在有限的空间内显示全部内容是不现实的。这时,我们可以使用文字无缝滚动效果,将文字平滑滚动,以便在有限的空间内展示全部的内容。下面是javascript实现文字无缝滚动效果的完整攻略。 实现思路 首先,在HTML中创建一个容器,用来放置要滚动的文字。 使用CSS为容器设置样式,包括宽度、高度、背景色等,以及设置文字…

    JavaScript 2023年6月11日
    00
  • JavaScript函数内部属性和函数方法实例详解

    JavaScript函数内部属性和函数方法实例详解 在JavaScript中,每个函数都是一个对象,都有一些内部属性(internal properties)以及一些方法(method)。 函数对象的内部属性 [[Call]]属性 每个函数对象都有一个 [[Call]] 属性,也就是函数的调用方法。当我们像这样调用函数时: myFunction(); 实际上…

    JavaScript 2023年5月27日
    00
  • vue开发利器之unplugin-auto-import的使用

    vue开发利器之unplugin-auto-import的使用 什么是unplugin-auto-import unplugin-auto-import是一个插件,它可以在你编写Vue代码的时候自动向代码中导入需要的Vue或者JS依赖。 它可以自动跟踪依赖并导入所需的内容,避免了手动导入的繁琐步骤,提高了开发效率。 如何使用unplugin-auto-imp…

    JavaScript 2023年6月11日
    00
  • HTML5中的document.visibilityState

    在 HTML5 中,文档对象(即 document 对象)具有一个 visibilityState 属性,该属性表示当前文档对象的可见性状态。 visibilityState 可能的取值有以下三种: – visible :表示文档当前处于激活状态,即当前选项卡处于前台或当前窗口处于屏幕最上层。- hidden :表示文档当前处于非激活状态,即当前选项卡处于后…

    JavaScript 2023年5月5日
    00
  • 不唐突的JavaScript的七条准则整理收集第1/2页

    首先来讲一下标题和目录的编写。通常,我们需要在文章的开头编写标题,以便读者能够快速了解文章的主要内容。在Markdown中,我们可以使用#来表示不同的标题级别,例如: 不唐突的JavaScript的七条准则整理收集 第1页 准则一:避免使用全局变量 接下来,我们需要为文章编写目录,以便读者可以快速导航到需要的部分。在Markdown中,我们可以使用[TOC]…

    JavaScript 2023年6月10日
    00
  • JavaScript实现手写promise的示例代码

    下面是详细讲解“JavaScript实现手写promise的示例代码”的完整攻略。 理解promise 在讲解如何手写promise之前,我们先来理解一下promise,它是一个用来处理异步操作的对象。在promise中,一个异步操作被包装成一个状态机对象,该状态机由三个状态组成——pending(等待中)、fulfilled(完成)、rejected(拒绝…

    JavaScript 2023年5月28日
    00
  • 18个高频使用的JS工具方法总结

    标题:18个高频使用的JS工具方法总结 – 完整攻略 正文: 背景介绍 作为开发人员,经常需要使用一些常用工具方法来处理各种问题,这些工具方法可以节省开发时间、提高代码效率。本文总结了18个高频使用的JS工具方法,并对每个工具方法进行详细说明,包括使用方法、参数说明及返回值等内容。本文旨在为大家提供一份可供参考的JS工具方法总结,让大家能够更加高效地完成开发…

    JavaScript 2023年6月10日
    00
  • JS动态创建元素的两种方法

    我来为您详细讲解“JS动态创建元素的两种方法”的完整攻略。 1. 使用createElement方法创建元素 使用document.createElement(tagName)方法可以通过JS动态创建一个新的元素节点。其中,tagName参数表示要创建的元素的标签名。 示例一:创建一个<p>元素并添加到页面中 // 创建一个 <p> …

    JavaScript 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部