【JS基础】JavaScript内置对象

作者 : 开心源码 本文共4859个字,预计阅读时间需要13分钟 发布时间: 2022-05-12 共161人阅读

JavaScript内置对象与宿主无关,独立于宿主环境的ECMAScript实现提供的对象,在ECMAScript 程序开始执行时出现。在 ECMAScript 程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化

内置对象包含:GlobalMathECMAScript5中增添了 JSON 这个存在于全局的内置对象。

一、Global对象

ECMAScript 中的 Global 对象在某种意义上是作为一个终极的“兜底儿对象” 来定义的。换句话说,不属于任何其余对象的属性和方法,最终都是Global 对象的属性和方法。事实上,没有全 局变量或者全局函数;所有在全局作用域中定义的属性和函数,都是 Global 对象的属性

  1. 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)); 
  1. 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!' "); 
  1. Global 对象的属性

下表列出了 Global 对象的所有属性:

属 性说 明属 性说 明
undefined特殊值undefinedDate构造函数Date
NaN特殊值NaNRegExp构造函数RegExp
Infinity特殊值InfinityError构造函数Error
Object构造函数ObjectEvalError构造函数EvalError
Array构造函数ArrayRangeError构造函数RangeError
Function构造函数FunctionReferenceError构造函数ReferenceError
Boolean构造函数BooleanSyntaxError构造函数SyntaxError
String构造函数StringTypeError构造函数TypeError
Number构造函数NumberURIError构造函数URIError

二、Math对象

Math对象用于执行数学任务。与在 JavaScript 直 接编写的计算功能相比,Math 对象提供的计算功能执行起来要快得多。

  1. Math 对象的属性

Math 对象包含的属性大都是数学计算中可能会用到的少量特殊值。如下

属 性说 明
Math.E自然对数的底数,即常量e的值
Math.LN1010的自然对数
Math.LN22的自然对数
Math.LOG2E2为底e的对数
Math.LOG10E10为底e的对数
Math.PIπ的值
Math.SQRT1_21/2的平方根(即2的平方根的倒数
Math.SQRT22的平方根
  1. 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.Enum 次幂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的行为进行了规范,定义了全局对象JSONJSON对象有两个方法:stringify()parse()

  1. 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}"*/
  1. 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内置对象

发表回复