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使用中为什么10..toString()正常而10.toString()出错呢

    这是一个有趣的问题,事实上,10..toString() 和 10.toString() 演示的两种方法是不同的。 在 JavaScript 中,要调用对象的方法,我们通常使用点符号将对象与方法名称连接,例如 object.method()。然而,数字直接量(例如 10)之后的点符号(”.”) 会被 JavaScript 解释为带有小数的数字,因此解释器会尝…

    JavaScript 2023年5月18日
    00
  • 基于js中this和event 的区别(详解)

    当我们在JavaScript中使用this和event时,可能会产生混淆。在JavaScript中,this指的是函数的上下文,而event指的是触发事件的对象。在本文中,将详细讲解在JavaScript中使用this和event的区别。 1. this 在JavaScript中,this指的是当前函数的上下文。在函数中使用this时,它将指向调用函数的对象…

    JavaScript 2023年6月10日
    00
  • 微信小游戏中three.js离屏画布的示例代码

    让我们来详细讲解在微信小游戏中使用three.js的离屏画布的方法。 什么是离屏画布 在传统canvas绘制中,通常将其绘制在页面中的某个元素之上,从而展示出来。而把canvas绘制在另一个离屏的canvas上,也就是不将其展示在页面上,而是在后台进行绘制,我们称之为离屏画布。 在three.js中,离屏画布通常被称为渲染目标(RenderTarget)。它…

    JavaScript 2023年5月28日
    00
  • JS获取年月日时分秒的方法分析

    JS获取年月日时分秒的方法分析 概述 在JavaScript中,获取当前系统时间的年、月、日、时、分、秒等信息有多种方法,下面分别介绍这些方法。 Date对象 JavaScript的Date对象提供了获取当前系统时间的多种方法。可以通过以下几种方式获取当前时间: 方法一:传入当前时间戳 const date = new Date(时间戳); // 时间戳是一…

    JavaScript 2023年5月27日
    00
  • javascript实现简单倒计时效果

    下面是“JavaScript实现简单倒计时效果”的完整攻略: 1. 准备工作 在实现倒计时之前,需要考虑几个方面:1. 计时器应该显示在页面的哪个位置2. 倒计时的目标时间是多少3. 如果倒计时结束之后需要执行什么操作所以我们可以准备一个包含倒计时的容器元素和需要倒计时到的时间的变量。 在HTML中定义计时器容器的元素: <div id="c…

    JavaScript 2023年5月27日
    00
  • Firefox outerHTML实现代码

    下面是“Firefox outerHTML实现代码”的完整攻略。 什么是outerHTML 在开始介绍outerHTML实现代码之前,首先必须了解outerHTML的概念。outerHTML是一种操作DOM元素的属性,它可以获取或设置某个元素包括本身在内的HTML代码。 实现代码 在Firefox浏览器中实现outerHTML代码的方法如下: // 获取某个…

    JavaScript 2023年6月11日
    00
  • js中let和var定义变量的区别

    当我们在 JavaScript 中定义变量时,有两种关键字可供使用:var 和 let。在这里,我将详细讲解两者之间的区别。 var vs. let var 和 let 都可用于声明 JavaScript 变量,但它们在声明变量时具有不同的行为。 1. var 使用 var 定义的变量具有函数作用域。这意味着,如果在函数内定义一个变量,它将仅在函数内部可用。…

    JavaScript 2023年6月10日
    00
  • js本身的局限性 别让javascript做太多事

    JavaScript(以下简称JS)是Web前端开发必不可少的一门语言,它具有动态性、灵活性和可移植性等优点。但是,JavaScript本身存在着一些局限性,它不能完全替代其他语言的功能,也不能处理所有的任务。因此,在开发过程中需要注意不要过度依赖JS,否则会给项目带来一些潜在的风险和问题。 JS本身的局限性 在Web应用程序中,JS主要用于前端的交互效果和…

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