你不曾知道的JavaScript 内置对象解读

摘要:JavaScript 是面向对象的编程语言 (OOP)。OOP 语言使我们有能力自定义对象和变量类型。(事实上,只是基于对象的,并不完全具备面向对象的语言的三大特性[封装、继承、多态])。在高级 JavaScript 的部分会讲解如何创建自己的对象。现在,我们开始学习内建的 JavaScript 对象,以及如何使用它们。对象只是一种特殊的数据。对象拥有属性和方法。

一、String(字符串)对象

字符串是 JavaScript 的一种基本的数据类型。需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

创建一个字符串对象有以下几种方法: 

方法一:var str = new String("Hello World"); 

方法二:var str = String("Hello World"); 

方法三:var str = "Hello World"; 

String 类定义了大量操作字符串的方法,一般分为这样几类:查找子字符串、截取,分割和拼接字符串、匹配正则表达式、改变字符串样式等。

String 对象属性

String 对象方法

二、Date(日期)对象

创建一个日期对象可以有这些方法 

方法一:var d = new Date(ms);//ms代表从1970.1.1凌晨0点的毫秒数 

方法二:var d = new Date(year,month[,day,hour,minute,second,millisecond]); 

方法三:var d = new Date("localDateString");//这里不是那么的通用。2011/5/5格式相对通用 

如果我们需要创建一个当前时间的日期对象。直接new Date()用无参数的构造函数即可。当然我们不能忽略这个new,前面提到String可以省略,然而这里千万不能这样做。因为Date()的结果是浏览器实现的一个日期对象的toString返回的表示日期的字符串。故此,这里两者不能混用。 

Date 对象用于处理日期和时间,Date 对象会自动把当前日期和时间保存为其初始值。

Date 对象的大部分方法是以下几类:

getXXX:获取 年、月、日、时、分、秒、等等。

setXXX:设置 年、月、日、时、分、秒、等等。

toXXXString:转成一定格式的字符串。

Date 对象属性

方法 描述

三、Array(数组)对象

数组对象的作用是:使用单独的变量名来存储一系列的值。数组的常用属性是:length,代表了这个数组中元素的个数。数组的常用方法分这么几类:排序、添加和删除元素、

拼接另一个数组、转成字符串。其中添加元素和移除元素的几个方法还有模拟堆栈或队列这些数据结构的作用。

让我们先看 Array 对象的创建吧

第一种:var arr = new Array(10);

该方法在实际的使用当中并不那么的实用,与很多编译型语言不同, js 数组的长度是可变的,不但增强了灵活性,还给我们有了更多好的选择。

第二种:var arr = new Array("one","two","three");

使用 new 方式创建数组的方法一般多为这两者,当然也可以使用 new Array() 创建一个空的数组对象。通常情况下,我推荐如下的方法 

第三种:var arr = ["one","two","three"];

使用数组的字面量方式创建一个数组对象,不但简洁易读,而且几乎完全等价于使用 new 方式创建数组对象的效果。

Array 对象属性

Array 对象方法

四、Boolean(逻辑)对象

Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。

创建 Boolean 对象的语法:

new Boolean(value); //构造函数

Boolean(value); //转换函数

在 JavaScript 中,布尔值是一种基本的数据类型。Boolean 对象是一个将布尔值打包的布尔对象。Boolean 对象主要用于提供将布尔值转换成字符串的 toString() 方法。当调用 toString() 方法将布尔值转换成字符串时(通常是由 JavaScript 隐式地调用),JavaScript 会内在地将这个布尔值转换成一个临时的 Boolean 对象,然后调用这个对象的 toString() 方法。

Boolean 对象属性

Boolean 对象方法

五、JavaScript Math(算数)对象

Math 类的使用范围相对狭窄,因为他作为一个数学计算的类,而非一个数据结构类,但是我们也看到了 Math.random 以及各种取整等常用方法。Math 通常是一个“静态”类,因为没有人会实例化一个 Math 对象,而是直接使用其“静态”方法,有些资料直接称它为 Math 对象,在这里我们不妨称它为“静态”类吧。 

首先我必须介绍 random 方法,因为他常用且太有用了。在制造随机事件的时候他总是不可或缺,同样在防止缓存上他也显得很有用处。 Math.random 方法返回的是一个 0到1 之间的开区间浮点数,即 (0,1) ,他的使用非常简单,唯一需要注意的是,当我们取整的时候对 floor 和 ceil 方法的筛选时需要谨慎,前者使得 random 间接转换为前闭后开区间,而后者则是前开后闭区间。假如我们现在需要一个取1-100的随机数,那么有如下的两种常用解决方案

方法一:Math.ceil(Math.random*100);

方法二:Math.floor(Math.random*100)+1; 

ceil 方法和 floor 方法都是用来取整的数学方法,根据单词含义我们可以理解,前者是向上取整,而后者则是向下取整。当我们从一个连续的数组对象中随机选择一个数组元素时,我们可以借助 random 轻松的来帮我们挑选: "ipad","iphone","ipod touch","ipod nano","macbook"; 那么当我们想要接近舍入时呢,我们可以使用 Math.round 方法,他在取整时根据数值进行靠近取整。比如 Math.round(5.4) 返回的是 5 。那么如果 Math.round(5.5) 呢,答案是 6 而不是 5 。

Math 对象属性

Math 对象方法

六、RegExp 对象

什么是 RegExp?

RegExp 是正则表达式的缩写。当您检索某个文本时,可以使用一种模式来描述要检索的内容。RegExp 就是这种模式。简单的模式可以是一个单独的字符。更复杂的模式包括了更多的字符,并可用于解析、格式检查、替换等等。您可以规定字符串中的检索位置,以及要检索的字符类型,等等。

七、JavaScript Global 对象

这是一个固有对象,目的是把所有全局方法集中在一个对象中。Global 对象不能用 new 运算符创建。它在 Scripting 引擎被初始化时创建,并立即使其方法和属性可用。

原文链接:https://www.jianshu.com/p/b1b...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章