【JS基础】JavaScript内置对象
JavaScript
内置对象与宿主无关,独立于宿主环境的ECMAScript
实现提供的对象,在ECMAScript
程序开始执行时出现。在 ECMAScript
程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化。
内置对象包含:Global
和Math
,ECMAScript5
中增添了 JSON
这个存在于全局的内置对象。
一、Global
对象
ECMAScript
中的 Global
对象在某种意义上是作为一个终极的“兜底儿对象” 来定义的。换句话说,不属于任何其余对象的属性和方法,最终都是Global
对象的属性和方法。事实上,没有全 局变量或者全局函数;所有在全局作用域中定义的属性和函数,都是 Global 对象的属性。
URI
编码方法
URI
:(Uniform Resource Identifiers
)通用资源标识符
(1)编码方法
Global
对象的 encodeURI()
和encodeURIComponent()
方法可以对URI
进行编码,以便发送给浏览器。
encodeURI()
主要用于对整个URI
进行编码,不会对本身属于URI
的特殊字符进行编码,例如冒号、正斜杠、 问号和井字号;encodeURIComponent()
主要用于对URI
中的某一段进行编码,会对它发现的任何非标准字符进行编码。
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));
注:一般来说 , 我们使用 encodeURIComponent()
方法的时候要比使用 encodeURI()
更多,由于在实践中更常见的是对查询字符串参数而不是对基础 URI
进行编码。
(2)解码方法
decodeURI()
只能对使用encodeURI()
替换的字符进行解码;decodeURIComponent()
能够解码使用encodeURIComponent()
编码的所有字符,即它可以解码任何特殊字符的编码。
var uri = "http%3A%2F%2Fwww.wrox.com%2Fillegal%20value.htm%23start"; // http%3A%2F%2Fwww.wrox.com%2Fillegal value.htm%23startalert(decodeURI(uri)); // http://www.wrox.com/illegal value.htm#start alert(decodeURIComponent(uri));
eval()
方法
eval()
函数计算JavaScript
字符串,并把它作为脚本代码来执行;- 只接受一个参数,其中含有要计算的
JavaScript
表达式或者要执行的语句;- 假如参数是一个表达式,
eval()
函数将执行表达式;假如参数是Javascript
语句,eval()
将执行Javascript
语句。
eval("alert('hi')"); // 这行代码的作用等价于下面这行代码: alert("hi");
在 eval()
中创立的任何变量或者函数都不会被提升,由于在解析代码的时候,它们被包含在一个字符串中;它们只在 eval()
执行的时候创立。
eval("var msg = 'hello world'; "); alert(msg); //"hello world" alert(msg1); // 报错,msg1 is not definedeval("var msg1 = 'hello hongmao!' ");
Global
对象的属性
下表列出了 Global
对象的所有属性:
属 性 | 说 明 | 属 性 | 说 明 |
---|---|---|---|
undefined | 特殊值undefined | Date | 构造函数Date |
NaN | 特殊值NaN | RegExp | 构造函数RegExp |
Infinity | 特殊值Infinity | Error | 构造函数Error |
Object | 构造函数Object | EvalError | 构造函数EvalError |
Array | 构造函数Array | RangeError | 构造函数RangeError |
Function | 构造函数Function | ReferenceError | 构造函数ReferenceError |
Boolean | 构造函数Boolean | SyntaxError | 构造函数SyntaxError |
String | 构造函数String | TypeError | 构造函数TypeError |
Number | 构造函数Number | URIError | 构造函数URIError |
二、Math
对象
Math
对象用于执行数学任务。与在 JavaScript
直 接编写的计算功能相比,Math
对象提供的计算功能执行起来要快得多。
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 的平方根(即2 的平方根的倒数 |
Math.SQRT2 | 2 的平方根 |
Math
对象的方法
(1)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
要找到数组中的最大或者最小值,可以像下面这样使用 apply()
方法:
var values = [1, 2, 3, 4, 5, 6, 7, 8]; var max = Math.max.apply(Math, values);
(2)舍入方法
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.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
(3)random()
方法
Math.random()
方法返回大于等于 0 小于 1 的一个随机数,这个方法非常实用。
套用下面的公式,即可以利用 Math.random()
从某个整数范围内随机选择一个值。
值 = Math.floor(Math.random() * 可能值的总数 + 第一个可能的值)
公式中用到了 Math.floor()
方法,这是由于Math.random()
总返回一个小数值。而用这个小数 值乘以一个整数,而后再加上一个整数,最终结果依然还是一个小数。
// 选择一个 1到 10 之间的数值// 总共有 10 个可能的值(1 到 10),而第一个可能的值是 1var num = Math.floor(Math.random() * 10 + 1);// 选择一个介于 2 到 10 之间的值// 从2数到10要数9个数,因而可能值的总数就是9,而第一个可能的值就是 2var num1 = Math.floor(Math.random() * 9 + 2);
(4)其余方法
方 法 | 说 明 | 方 法 | 说 明 |
---|---|---|---|
Math.abs(num) | 返回num 的绝对值 | Math.asin(x) | 返回x 的反正弦值 |
Math.exp(num) | 返回Math.E 的num 次幂 | Math.atan(x) | 返回x 的反正切值 |
Math.log(num) | 返回num 的自然对数 | Math.atan2(y,x) | 返回y/x 的反正切值 |
Math.pow(num,power) | 返回num 的power 次幂 | Math.cos(x) | 返回x 的余弦值 |
Math.sqrt(num) | 返回num 的平方根 | Math.sin(x) | 返回x 的正弦值 |
Math.acos(x) | 返回x 的反余弦值 | Math.tan(x) | 返回x 的正切值 |
三、JSON
对象
ECMAScript5
对解析JSON
的行为进行了规范,定义了全局对象JSON
。JSON
对象有两个方法:stringify()
和parse()
stringify()
方法
JSON.stringify()
方法用于将 JavaScript
值转换为 JSON
字符串,返回包含 JSON
文本的字符串。
JSON.stringify(value[, replacer[, space]])
参数说明:
value
: 必须, 要转换的 JavaScript 值(通常为对象或者数组)。replacer
: 可选。用于转换结果的函数或者数组。
var jsonObj = { "title":"javascript", "group":{ "name":"jia", "tel":12345 }};JSON.stringify(jsonObj);// {"title":"javascript","group":{"name":"jia","tel":12345}}
- 假如
replacer
为函数,则JSON.stringify
将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。假如此函数返回undefined
,则排除成员。根对象的键是一个空字符串:””。
JSON.stringify({a:1,b:2}, function(key, value){ if (typeof value === "number") { value = 2 * value; } return value; })// "{"a":2,"b":4}"
- 假如 replacer 是一个数组,则仅转换该数组中具备键值的成员。成员的转换顺序与键在数组中的顺序一样。
var jsonObj = { "title":"javascript", "group":{ "a":1 }};console.log(JSON.stringify(jsonObj,["group","a"])); // {"group":{"a":1}}
space
:可选,文本增加缩进、空格和换行符,假如space
是一个数字,则返回值文本在每个级别缩进指定数目的空格,假如space
大于10
,则文本缩进10
个空格。space
也可以使用非数字,如:\t
。
JSON.stringify({ p1: 1, p2: 2 }, null, 2);/*返回值如下:"{ "p1": 1, "p2": 2}"*/
parse()
方法
JSON.parse()
方法用于将一个 JSON
字符串转换为对象,返回给定 JSON
字符串转换后的对象。
JSON.parse(text[, reviver])
参数说明:
text
: 必须, 一个有效的JSON
字符串。reviver
: 可选,一个转换结果的函数, 将为对象的每个成员调用此函数。
JSON.parse('[1, 5, "false"]') // [1, 5, "false"]JSON.parse('null') // nullvar o = JSON.parse('{"name": "张三"}');o.name // 张三// 接收一个函数参数,在每个键值对儿上调用var o = JSON.parse('{"a":1,"b":2}', function(key, value) { if (key === ''){ return value; } if (key === 'a') { return value + 10; }});o.a // 11o.b // undefined
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » 【JS基础】JavaScript内置对象