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日

相关文章

  • php封装的smarty类完整实例

    为了让更多开发者更好的使用PHP模板引擎框架Smarty。我们在这里提供了PHP封装的Smarty类完整实例攻略,包含下载、安装、配置、使用等步骤。具体过程如下: 1. 下载Smarty 首先,你需要到Smarty官网下载最新的Smarty版本。下载完成后,我们可以解压到PHP系统可访问到的目录下。例如,解压到/var/www/html/smarty目录。 …

    JavaScript 2023年6月10日
    00
  • JavaScript面向对象编程入门教程

    JavaScript面向对象编程是一种常见的编程技术,通过对象和类的概念,可以更好地组织和管理代码。以下是JavaScript面向对象编程的完整攻略: 1. 了解对象和类的概念 在JavaScript中,对象可以看作是包含属性和方法的实体,而类可以看作是包含相同属性和方法的一组对象。要定义一个类,可以使用构造函数或类声明的方式。例如: // 使用构造函数定义…

    JavaScript 2023年5月18日
    00
  • 服务器安全设置的几个注册表设置

    接下来我将详细讲解“服务器安全设置的几个注册表设置”的完整攻略。 1. 前言 在保障服务器安全的过程中,调整服务器的注册表设置可以起到一定的作用。本文将结合示例,讲解几个比较常见的注册表设置,以帮助服务器管理员加强服务器的安全防护。 2. 禁用USB存储设备 为了防止外部用户携带的恶意软件通过USB存储设备传播到服务器上,可以通过禁用USB存储设备来增加服务…

    JavaScript 2023年6月11日
    00
  • JS中的六种继承方式以及优缺点总结

    下面是详细讲解“JS中的六种继承方式以及优缺点总结”的完整攻略。 JS中的六种继承方式 在JS中,继承是OO的一个重要的概念,通过继承可以实现代码的重用和封装性,JS中有六种继承方式,分别是: 1.原型链继承 原型链继承是JS中最常见的一种继承方式,它是利用原型对象来实现的,将子类的原型指向父类的实例,从而实现子类继承父类的方法和属性。 function P…

    JavaScript 2023年5月27日
    00
  • JS/jQuery判断DOM节点是否存在的简单方法

    当我们使用 JavaScript 或者 jQuery 操作 DOM 节点时,有时候需要判断一个元素是否存在于页面中。以下是几种简单的方法来判断 DOM 节点是否存在。 方法一:使用 jQuery 长度属性 我们可以使用 jQuery 长度属性 .length() 来判断元素是否存在。如果元素不存在,它的长度为 0,反之则大于 0。 // 判断元素存在 if …

    JavaScript 2023年6月10日
    00
  • JavaScript实现网页电子时钟

    下面是JavaScript实现网页电子时钟的完整攻略: 1. 创建HTML结构 在HTML中,我们需要创建与时钟相关的结构,通常是一个div容器,里面包含用于显示时间的三个子容器(小时、分钟、秒钟)。 <div class="clock"> <div class="hour"></div&…

    JavaScript 2023年5月27日
    00
  • JavaScript深拷贝与浅拷贝实现详解

    JavaScript深拷贝与浅拷贝实现详解 什么是拷贝? 在JavaScript中,我们经常需要将对象或者数组进行复制操作,这被称为拷贝。在拷贝过程中,我们需要注意两个概念:浅拷贝和深拷贝。 什么是浅拷贝? 浅拷贝仅仅是复制了对象或数组的引用,而并没有克隆对象或数组。也就是说,对于被拷贝的对象或数组,它们的属性仍然指向原对象或数组中的属性。浅拷贝通常使用的方…

    JavaScript 2023年6月10日
    00
  • Three.js+React制作3D梦中海岛效果

    下面我将详细讲解“Three.js+React制作3D梦中海岛效果”的完整攻略。 简介 Three.js是一款JavaScript 3D库,它可以为我们简化3D场景的创建和管理。React是一款流行的JavaScript库,它可以让我们更容易地构建用户界面。将这两个库结合起来,我们可以更加高效的创建3D界面。 在本攻略中,我们将使用Three.js和Reac…

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