第14章 内置对象

java-man

贡献于2013-11-12

字数:0 关键词: JavaScript开发

第14141414章内置对象 学 习要 点: 1.Global 对象 2.Math 对象 主讲教师:李炎恢 合作 网站: http://http://http://http://www.ibeifeng.comwww.ibeifeng.comwww.ibeifeng.comwww.ibeifeng.com 讲师博客: http://hi.baidu.com/http://hi.baidu.com/http://hi.baidu.com/http://hi.baidu.com/李炎恢 ECMA-262 对内置对象的定义是:“由ECMAScript 实现提供的、不依赖宿主环境的对 象,这些对象在ECMAScript 程序执行之前就已经存在了。”意思就是说,开发人员不必显 示 地实 例化 内置 对象 ;因 为它 们已 经实 例化 了 。ECMA-262 只 定义 了两 个内 置对 象 :Global 和Math。 一.Global Global Global 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 Math Math Math 对象 ECMAScript 还 为保 存数 学公 式和 信息 提供 了一 个对 象, 即 Math 对 象。 与我 们 在 JavaScript 直 接编 写计 算功 能相 比, Math 对 象提 供的 计算 功能 执行 起来 要快 得多 。 1.Math 对 象的 属性 Math 对 象包 含的 属性 大都 是数 学计 算中 可能 会用 到的 一些 特殊 值。 属性 说明 Math.E 自 然对 数的 底数 ,即 常量 e的值 Math.LN10 10的 自然 对数 Math.LN2 2的 自然 对数 Math.LOG2E 以2为底e的 对数 Math.LOG10E 以10为底e的 对数 Math.PI ∏的值 Math.SQRT1_2 1/2 的 平方 根 Math.SQRT2 2的 平方 根 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('
'); } 为 了更 加方 便的 传递 想要 范围 ,可 以写 成函 数: 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('
'); } 5.其 他方 法 方法 说明 Math.abs(num) 返回num 的 绝对 值 Math.exp(num) 返回Math.E 的num 次幂 Math.log(num) 返回num 的 自然 对数 Math.pow(num,power) 返回num 的power 次幂 Math.sqrt(num) 返回num 的 平方 根 Math.acos(x) 返回x的 反余 弦值 Math.asin(x) 返回x的 反正 弦值 Math.atan(x) 返回x的 反正 切值 Math.atan2(y,x) 返回y/x 的 反正 切值 Math.cos(x) 返回x的 余弦 值 Math.sin(x) 返回x的 正弦 值 Math.tan(x) 返回x的 正切 值 感谢收看本次教程! 本 课程 是由 北风 网 (ibeifeng.com)(ibeifeng.com)(ibeifeng.com)(ibeifeng.com) 瓢城Web Web Web Web 俱 乐部 (yc60.com)(yc60.com)(yc60.com)(yc60.com)联合提 供: 本 次主 讲老 师: 李 炎恢 我 的博 客: hi.baidu.com/hi.baidu.com/hi.baidu.com/hi.baidu.com/李 炎恢 //// 我 的邮 件 :yc60.com@gmail.comyc60.com@gmail.comyc60.com@gmail.comyc60.com@gmail.com

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档

相关文档