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

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文件。 首先需要在HTML文件中建立一个<div>标签,用来显示时钟的数字,同时还需要引用CSS文件。 为了让时钟数字动起来,我们需要在JavaScript文件中编写定时器,定时更新显示的数…

    JavaScript 2023年5月27日
    00
  • 深入浅出JavaScript中base64编码原理

    深入浅出JavaScript中base64编码原理 什么是base64编码 Base64是一种用于将二进制数据转换成ASCII字符的编码方式。它使用64个字符表示64个不同的二进制数字,每个字符表示6个二进制位,因此每3个字节需要进行编码,得到4个字符。这种编码方式常用于电子邮件和HTTP协议传输数据,因为它可以处理非文本数据。 base64编码原理 在Ja…

    JavaScript 2023年5月20日
    00
  • 全面解析Bootstrap表单使用方法(表单控件状态)

    下面是全面解析Bootstrap表单使用方法的完整攻略,包含表单控件状态和两条示例说明。 一、什么是Bootstrap表单 在Web应用程序设计中,表单是非常重要的一部分,可以使用表单来获取用户输入并与服务器进行交互。Bootstrap是一个非常受欢迎的开源前端框架之一,它提供了大量的CSS、JavaScript组件和工具,可以帮助您快速地构建现代化的Web…

    JavaScript 2023年6月10日
    00
  • JavaScript遍历json对象数据的方法

    下面是“JavaScript遍历JSON对象数据的方法”的攻略: 1. 什么是JSON对象? JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它的格式类似于JavaScript对象。JSON对象可以表示数字、字符串、布尔值、数组、对象(包括嵌套对象)等数据类型。JSON对象通常用于Web应用中,用于在浏览器和服务器…

    JavaScript 2023年5月27日
    00
  • javascript中对Date类型的常用操作小结

    Javascript中对Date类型的常用操作小结 创建Date对象 在 Javascript 中创建 Date 对象的方式有以下几种: 使用 new Date() 构造函数创建一个当前时间的 Date 对象。 let currentDate = new Date(); 使用 new Date(value) 构造函数创建指定时间的 Date 对象,value…

    JavaScript 2023年5月27日
    00
  • JavaScript使用yield模拟多线程的方法

    下面是我准备的详细攻略。 前言 JavaScript本身是单线程的,即一次只能执行一个任务。这限制了JavaScript在一些需要同时执行多个任务的场景下的表现。 为了解决这个问题,JavaScript社区为我们提供了多线程的方案:使用Web Worker。Web Worker让我们能够在JS中使用多线程在后台运行JS程序。 然而,在某些更简单的情况下,我们…

    JavaScript 2023年5月28日
    00
  • Javascript String对象扩展HTML编码和解码的方法

    下面是关于”Javascript String对象扩展HTML编码和解码的方法”的完整攻略: 1. HTML编码的概念 在编写HTML文件时,我们经常会使用一些特殊的字符,比如”<“、”>”、”&”等。但是,在HTML文档中,这些字符并不是直接显示出来的,因为它们被解释为HTML标签或其他功能。 如果我们需要在HTML文档中直接显示这些字…

    JavaScript 2023年5月20日
    00
  • 详解JavaScript正则表达式中的global属性的使用

    详解JavaScript正则表达式中的global属性的使用 在 JavaScript 中,正则表达式(RegExp)是一个很常用的工具,它用于匹配和操作字符串。其中,g 属性(global)是非常重要的一个属性,本篇文章将详细讲解如何使用 global 属性来进行全局匹配。 什么是 global 属性? g(global)属性用于指定在整个文本中查找所有匹…

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