单体内置对象——ECMAScript
来源:互联网 发布:java员工管理系统代码 编辑:程序博客网 时间:2024/06/07 11:51
简介
内置对象:“由 ECMAScript 实现提供的、不依赖于宿主环境的对象,这些对象在 ECMAScript 程序执行之前就已经存在了,例如Object、Array 和 String
Global对象
属性
1、不属于任何其他对象的属性和方法,最终都是它的属性和方法
2、所有在全局作用域中定义的属性和函数,都是 Global 对象的属性
3、Global 对象还包含一些属性,例如特殊的值 undefined、NaN 以及 Infinity 都是 Global 对象的属性。此外,所有原生引用类型的构造函数,像 Object 和 Function,也都是 Global 对象的属性
URI编码方法
encodeURI()和 encodeURIComponent()
作用
对 URI(Uniform Resource Identifiers,通用资源标识符)进行编码,以便发送给浏览器。有效的 URI 中不能包含某些字符,例如空格。而这两个 URI 编码方法就可以对 URI 进行编码,它们用特殊的 UTF-8 编码替换所有无效的字符, 从而让浏览器能够接受和理解
主要区别
1、encodeURI()主要用于整个 URI(例如,http://www.wrox.com/illegal value.htm),而 encode- URIComponent()主要用于对 URI 中的某一段(例如前面 URI 中的 illegal value.htm)进行编码
2、encodeURI()不会对本身属于 URI 的特殊字符进行编码,例如冒号、正斜杠、 问号和井字号;而 encodeURIComponent()则会对它发现的任何非标准字符进行编码
例如:
var uri = "http://www.wrox.com/illegal value.htm#start"; //"http://www.wrox.com/illegal%20value.htm#start" alert(encodeURI(uri)); //"http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start" alert(encodeURIComponent(uri));
decodeURI() 和 decodeURIComponent()
1、decodeURI()只能对使用 encodeURI()替换的字符进行解码。例如, 它可将%20 替换成一个空格,但不会对%23 作任何处理,因为%23 表示井字号(#),而井字号不是使用 encodeURI()替换的。
2、decodeURIComponent()能够解码使用 encodeURIComponent()编码的所有字符,即它可以解码任何特殊字符的编码
例如:
var uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start"; //http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23start alert(decodeURI(uri)); //http://www.wrox.com/illegal value.htm#start alert(decodeURIComponent(uri));
eval()
eval()方法就像是一个完整的 ECMAScript 解析器,它只接受一个参数,即要执行的 ECMAScript(或 JavaScript) 字符串(可能是整个 ECMAScript 语言中最强大的一个方法)
例如:
//1eval("alert('hi')"); //这行代码的作用等价于下面这行代码: alert("hi"); //当解析器发现代码中调用 eval()方法时,它会将传入的参数当作实际的 ECMAScript 语句来解析, 然后把执行结果插入到原位置。//2、通过 eval()执行的代码被认为是包含该次调用的执行环境的一部分, 因此被执行的代码具有与该执行环境相同的作用域链var msg = "hello world"; eval("alert(msg)"); //"hello world" //可见,变量 msg 是在 eval()调用的环境之外定义的,但其中调用的 alert()仍然能够显示"hello world"。这是因为上面第二行代码最终被替换成了一行真正的代码eval("function sayHi() { alert('hi'); }"); sayHi(); // sayHi()是在 eval()内部定义的。但由于对 eval()的调用最终会被替换成定义函数的实际代码,因此可以在下一行调用 sayHi()eval("var msg = 'hello world'; "); alert(msg); //"hello world"
注意
能够解释代码字符串的能力非常强大,但也非常危险。因此在使用 eval()时必须极为谨慎,特别是在用它执行用户输入数据的情况下。否则,可能会有恶意用户输入威胁你的站点或应用程序安全的代码(即所谓的代码注入)
window对象
ECMAScript 虽然没有指出如何直接访问 Global 对象,但 Web 浏览器都是将这个全局对象作为 window 对象的一部分加以实现的。因此,在全局作用域中声明的所有变量和函数,就都成为了 window 对象的属性
例如:
//1var color = "red"; function sayColor(){ alert(window.color); } window.sayColor(); //"red" //2、另一种取得 Global 对象的方法var global = function(){ return this; }();
Math对象
min()和 max()方法
min()和 max()方法用于确定一组数值中的最小值和最大值,这两个方法都可以接收任意多个数值参数
var max = Math.max(3, 54, 32, 16); alert(max); //54 var min = Math.min(3, 54, 32, 16); alert(min); //3
舍入方法
例如:
alert(Math.ceil(25.9)); //26 alert(Math.ceil(25.5)); //26 alert(Math.ceil(25.1)); //26 alert(Math.round(25.9)); //26 alert(Math.round(25.5)); //26 alert(Math.round(25.1)); //25 alert(Math.floor(25.9)); //25 alert(Math.floor(25.5)); //25 alert(Math.floor(25.1)); //25
random()方法
Math.random()方法返回大于等于 0 小于 1 的一个随机数,套用下面的公式,就可以利用 Math.random() 从某个整数范围内随机选择一个值
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
例如:
//选择一个 1 到 10 之间的数值: var num = Math.floor(Math.random() * 10 + 1); //选择一个介于 2 到 10 之间的值var num = Math.floor(Math.random() * 9 + 2); //通过一个函数来计算可能值的总数和第一个可能的值function selectFrom(lowerValue, upperValue) { var choices = upperValue - lowerValue + 1; return Math.floor(Math.random() * choices + lowerValue); } var num = selectFrom(2, 10); alert(num); // 介于 2 和 10 之间(包括 2 和 10)的一个数值
参考
《JavaScript高级程序设计(第3版)》
- 单体内置对象——ECMAScript
- ECMAScript-单体内置对象
- js学习笔记:引用类型——单体内置对象
- 引用类型(五)——单体内置对象
- 单体内置对象,内置对象
- 25. 单体内置对象
- 单体内置对象
- javaScript单体内置对象
- 单体内置对象
- 引用类型---单体内置对象
- 《javascript高级程序设计》——基本包装类型和单体内置对象
- js的单体内置对象Math
- 《JavaScript 闯关记》之单体内置对象
- javascript单体内置对象和方法
- JavaScript内置对象--单体内置对象(Global、Math)详解
- 重识Javascript系列---ECMAScript内置对象
- JavaScript基础——引用类型(四)基本包装类型(Boolean、Number、String)、单体内置对象(Global、Math)
- js--引用类型单体内置对象--Math,随机数生成
- 深度学习框架-从TensorFlow 到 Caffe2:盘点深度学习框架
- 五、(2)相机标定_OpenCV&Matlab
- 51nod 1005 大数加法(大数模板)
- LeetCode-36-Valid Sudoku 位运算状压,python的ascll,char互转
- 代码大全2 第5部分 代码改善 mindmap
- 单体内置对象——ECMAScript
- Linux环境变量和压缩和用户管理命令
- 机器翻译
- CCF 集合竞价 C语言版
- HDOJ HDU 1140 War on Weather
- PHP去除文件末尾的\n
- 泛型详解
- 求质数的算法
- 二.Spring的IOC原理的原理分析和Demo