`
chaoyi
  • 浏览: 305584 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

第十四章:内置对象

阅读更多

学习要点:
1.Global 对象
2.Math 对象

ECMA-262 对内置对象的定义是: “由 ECMAScript 实现提供的、不依赖宿主环境的对象,这些对象在 ECMAScript 程序执行之前就已经存在了。 ”意思就是说,开发人员不必显示地实例化内置对象;因为它们已经实例化了。ECMA-262 只定义了两个内置对象:Global和 Math。
一.Global 对象
Global(全局)对象是 ECMAScript 中一个特别的对象,因为这个对象是不存在的。在ECMAScript 中不属于任何其他对象的属性和方法, 都属于它的属性和方法。 所以, 事实上,并不存在全局变量和全局函数;所有在全局作用域定义的变量和函数,都是 Global 对象的属性和方法。
PS:因为 ECMAScript 没有定义怎么调用 Global 对象,所以,Global.属性或者 Global.方法()都是无效的。(Web 浏览器将 Global 作为 window 对象的一部分加以实现)
Global 对象有一些内置的属性和方法:
1.URI 编码方法
URI 编码可以对链接进行编码,以便发送给浏览器。它们采用特殊的 UTF-8 编码替换所有无效字符,从而让浏览器能够接受和理解。

encodeURI()不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、问号和#号;而 encodeURIComponent()则会对它发现的任何非标准字符进行编码
var box = '//Lee 李';
alert(encodeURI(box)); //只编码了中文
var box = '//Lee 李';
alert(encodeURIComponent(box)); //特殊字符和中文编码了

 
PS:因为 encodeURIComponent()编码比 encodeURI()编码来的更加彻底,一般来说encodeURIComponent()使用频率要高一些。
使用了 URI 编码过后,还可以进行解码,通过 decodeURI()和 decodeURIComponent()来进行解码

var box = '//Lee 李';
alert(decodeURI(encodeURI(box))); //还原
var box = '//Lee 李';
alert(decodeURIComponent(encodeURIComponent(box))); //还原

 
PS:URI 方法如上所述的四种,用于代替已经被 ECMA-262 第 3 版废弃的 escape()和unescape()方法。URI 方法能够编码所有的 Unicode 字符,而原来的只能正确地编码 ASCII字符。所以建议不要再使用 escape()和 unescape()方法。
2.eval()方法
eval()方法主要担当一个字符串解析器的作用,他只接受一个参数,而这个参数就是要执行的 JavaScript 代码的字符串。

eval('var box = 100'); //解析了字符串代码
alert(box);
eval('alert(100)'); //同上
eval('function box() {return 123}'); //函数也可以
alert(box());

 
eval()方法的功能非常强大,但也非常危险。因此使用的时候必须极为谨慎。特别是在用户输入数据的情况下,非常有可能导致程序的安全性,比如代码注入等等。
3.Global 对象属性
Global 对象包含了一些属性:undefined、NaN、Object、Array、Function 等等。

alert(Array); //返回构造函数

 
4.window 对象
之前已经说明, Global 没有办法直接访问, 而 Web 浏览器可以使用 window 对象来实现一全局访问。

alert(window.Array); //同上

 
二.Math 对象
ECMAScript 还为保存数学公式和信息提供了一个对象,即 Math 对象。与我们在JavaScript 直接编写计算功能相比,Math 对象提供的计算功能执行起来要快得多。
1.Math 对象的属性
Math 对象包含的属性大都是数学计算中可能会用到的一些特殊值。


 

 

alert(Math.E); //
alert(Math.LN10);
alert(Math.LN2);
alert(Math.LOG2E);
alert(Math.LOG10E);
alert(Math.PI);
alert(Math.SQRT1_2);
alert(Math.SQRT2); //

 
2.min()和 max()方法
Math.min()用于确定一组数值中的最小值。Math.max()用于确定一组数值中的最大值。

alert(Math.min(2,4,3,6,3,8,0,1,3)); //最小值
alert(Math.max(4,7,8,3,1,9,6,0,3,2)); //最大值

 
3.舍入方法

Math.ceil()执行向上舍入,即它总是将数值向上舍入为最接近的整数;
Math.floor()执行向下舍入,即它总是将数值向下舍入为最接近的整数;
Math.round()执行标准舍入,即它总是将数值四舍五入为最接近的整数;
alert(Math.ceil(25.9)); //26
alert(Math.ceil(25.5)); //26
alert(Math.ceil(25.1)); //26
alert(Math.floor(25.9)); //25
alert(Math.floor(25.5)); //25
alert(Math.floor(25.1)); //25
alert(Math.round(25.9)); //26
alert(Math.round(25.5)); //26
alert(Math.round(25.1)); //25

 

4.random()方法
Math.random()方法返回介于 0 到 1 之间一个随机数, 不包括 0 和 1。 如果想大于这个范围的话,可以套用一下公式:
值 = Math.floor(Math.random() * 总数 + 第一个值)

alert(Math.floor(Math.random() * 10 + 1)); //随机产生 1-10 之间的任意数
for (var i = 0; i<10;i ++) {
document.write(Math.floor(Math.random() * 10 + 5)); //5-14 之间的任意数
document.write('<br />');
}

 
为了更加方便的传递想要范围,可以写成函数:

function selectFrom(lower, upper) {
var sum = upper - lower + 1; //总数-第一个数+1
return Math.floor(Math.random() * sum + lower);
}
for (var i=0 ;i<10;i++) {
document.write(selectFrom(5,10)); //直接传递范围即可
document.write('<br />');
}

 
5.其他方法



 

  • 大小: 17.1 KB
  • 大小: 20.5 KB
  • 大小: 55.6 KB
分享到:
评论

相关推荐

    JAVA WEB开发实战经典PPT

    第01章:WEB开发简介;...第03章:XML简介;第04章:Tomcat服务器的安装及配置;第05章:JSP基础语法;...第14章:AJAX开发技术;第15章:Struts基础开发;第16章:Struts常用标签库;第17章:Struts高级开发

    第14章 内置对象1

    本章主要探讨了两个重要的内置对象:Global对象和Math对象。 首先,Global对象在ECMAScript规范中是一个特殊的对象,虽然它在实际编程中并不存在一个明确的表示形式。全局作用域中的变量和函数实际上都是Global对象...

    《UEFI 内核导读》之ACPI 编程入门20211118.pdf

    第14章:ACPI/ASL调试简介 19 目录 序 2 第1章:ACPI规范简介 3 第2章:名词术语(Term) 4 第3章:Hello World 5 第4章:方法(Method) 6 第5章:对象(Object) 7 第6章:对象类型及命名 8 第7章:特殊对象与...

    Thinking in Java 第四版 第2章到第17章答案

    13. **第十四章:图形用户界面** - 使用Swing库创建GUI,包括组件、布局管理器、事件处理等。 15. **第十五章:网络编程** - Java提供了Socket和ServerSocket类进行网络通信,以及URL和URLConnection类用于访问网络...

    北大青鸟 ACCP 之 asp.net 8 - 14 章

    **第十四章:ASP.NET MVC** ASP.NET MVC是一种模型-视图-控制器架构模式,为Web开发提供了更灵活的方式。会讲解MVC架构的原理,以及如何创建和路由控制器、视图和模型。 通过北大青鸟ACCP的这些章节,学生将全面...

    asp网络编程学习笔记15章

    第十四章:网站部署与维护 - 部署步骤:将ASP应用上传到服务器,配置域名、数据库连接等。 - 网站监控与备份:定期检查网站状态,制定备份计划。 第十五章:进阶技术与扩展 - ASP.NET简介:对比ASP与ASP.NET,探讨...

    JSP应用开发详解(第二版)

    **第十四章:JSP的安全性** - 安全问题的识别与防范 - 用户认证与授权 - 会话管理与防止CSRF攻击 **第十五章:JSP性能优化** - 压缩与合并静态资源 - 使用缓存提高性能 - 优化JSP页面设计 - 使用CDN加速内容分发 *...

    JBuider第十三章:JDBC基础知识.rar

    **JBuider第十三章:JDBC基础知识** 在Java编程中,JDBC(Java Database Connectivity)是连接Java应用程序与各种数据库的重要桥梁。本教程聚焦于JDBC的基础知识,旨在帮助初学者理解如何在Java程序中操作数据库。...

    JavaScript Programmer's Reference - Alexei White

    #### 第十四章:表单 表单是用户与网站交互的重要方式之一。本章讲述了如何使用JavaScript增强表单功能,如实时验证输入数据、动态生成表单控件等。 #### 第十五章:层叠样式表 CSS用于控制网页外观布局。尽管本书...

    MATLAB基础入门教程 MATLAB使用详解 第14章 图形对象和句柄 共29页.pptx

    在《MATLAB基础入门教程》中,第14章详细介绍了图形对象和句柄的相关内容。这一章节对于那些希望深入了解MATLAB图形系统并能够灵活定制图形输出的用户来说至关重要。本章节将从图形对象的基础概念入手,逐步深入到...

    a smarter way to learn javascript 2013

    - **第14章:嵌套的if语句** —— 在一个if语句内嵌入另一个if语句。 - **第15章:数组** —— JavaScript中最基本的数据结构之一。 - **第16章:添加和移除数组元素** —— 动态改变数组长度的方法。 - **第17章:...

    vb.net 2008 例子

    第十四章:Windows服务 Windows服务是一种在后台运行的应用程序,本章将讲解如何在VB.NET 2008中创建和管理Windows服务。 第十五章:配置文件 应用程序配置文件允许动态更改设置。本章将介绍如何使用App.config文件...

    Visual Basic 教案

    第十四章:图形和多媒体 学习如何在VB中绘制图形,播放音频和视频,以及使用GDI+进行高级图形处理。 第十五章:应用程序发布和部署 讲解如何将VB项目打包成安装程序,以及如何考虑兼容性和配置问题。 通过《Visual...

    perl技术内幕,perl黑皮书

    第14章 标准模块 第15章 Perl/TK——窗口、按钮及其他 第16章 数据结构和数据库 第17章 创建包和模块 第18章 创建类和对象 第19章 面向对象编程 第20章 INTERNET和套接字编程 第21章 CGI编程:GGI.PM 第22章...

    Java语言基础下载

    第十四章:数据结构与算法(上) 231 学习目标 231 算法(algorithm): 232 查找算法: 234 排序算法: 237 递归(recursive): 240 快速排序: 242 内容总结 245 独立实践 246 第十五章:数据结构与算法(下) 247 ...

    PHP详细学习资料

    第十四章:PHP与Web服务 讨论PHP如何构建RESTful API,以及与WebSocket、SOAP等协议的交互,实现前后端分离或与其他系统集成。 总结,这份“PHP详细学习资料”是初学者的宝贵教程,覆盖了从基础知识到高级特性的...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

    第14章 映射值类型集合  14.1 映射Set(集)  14.2 映射Bag(包)  14.3 映射List(列表)  14.4 映射Map  14.5 对集合排序  14.5.1 在数据库中对集合排序  14.5.2 在内存中对集合排序  14.6 映射组件类型...

    C++面向对象程序设计_第三版_谭浩强_课后答案[1-14章

    根据提供的文件标题、描述以及部分无法识别的内容,我们可以聚焦于《C++面向对象程序设计》这本书,特别是由谭浩强编著的第三版,并且关注的是该书第1-14章的课后习题答案。 ### C++面向对象程序设计概述 C++是一...

    iOS5开发基础教程 Xcode4.2

    - **第十四章:嘿!上iCloud吧!** - 探讨如何使用iCloud服务进行云存储和同步。 - **第十五章:Grand Central Dispatch、后台处理和你** - 分析多线程技术在iOS应用中的应用。 - **第十六章:使用Quartz和OpenGL...

Global site tag (gtag.js) - Google Analytics