首页 > js教程 > 正文

对js的内建对象的解析

原创 2018-07-14 15:15:57 0 272
这篇文章主要介绍了关于对js的内建对象的解析,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

一、数据类型

js中数据类型分为两种,原始数据累次能够和引用数据类型。

1.原始数据类型

Undefined、Null、Boolean、Number、String是js中五种原始数据类型(primitive type)。

2.引用数据类型

引用类型通常叫作类(class),凡是以new创建出来的对象都是引用数据类型。包括new Boolean、new Number等原始类。

3.原始值和引用值

原始值是存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置。
引用值时存储在堆(heap)中的对象,也就是说,存储在变量处的值是一个指针(point),指向存储对象的内存处。
为变量赋值时,ECMAScript的解释程序必须判断该值是原始类型的还是引用类型的,从而把它们放到内存区域。
var a = 100;   // 栈内存
var b = new Number(100);  // 堆内存
console.log(a);  // 数值
console.log(b);  // 对象引用
console.log(b.valueOf());  // 获取数字对象b的值

特别提醒的是,在js中,字符串被看做是原始类型,这意味着下面的操作是非常耗内存的。

二、本地对象(内建对象)

ECMA-262把本地对象(native object)定义为“独立于宿主换将的ECMAScript实现提供的对象”。本地对象就是ECMA-262定义的类(引用类型)。包括:  
- Object Funciton  
- Array String Boolean Number Date RegExp  
- Error EvalError RangeError ReferenceError SyntaxError TypeError URIError

1.Array对象

1.创建语法

var arr = [element0, element2, ...];
new Array();
new Array(size);
new Array(element0, element1, ...);
var arr = [100, 200, [100, 200], true, undefined, function() { 
console.log("wtf.");
}, {name: "孙悟空", age: 18}];

2.属性

constructor  返回对创建此对象的数组函数的引用。
length       设置或返回数组中元素的数目。
prototype    可以向对象添加属性和方法。

3.方法

http://www.w3school.com.cn/jsref/jsref_obj_array.asppush()        向数组的末尾添加一个或更多元素,并返回新的长度。               
unshift()     向数组的开头添加一个或更多元素,并返回新的长度。                
pop()         删除并返回数组的最后一个元素。                               
shift()       删除并返回数组的第一个元素。                               
splice()      删除元素,并向数组添加新元素。                     
slice()       从某个已有的数组返回选定的元素。                    
sort()        对数组的元素进行排序。                           
reverse()     颠倒数组中元素的顺序。
concat()      连接两个或更多的数组,并返回结果。
join()        把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
toSource()    返回该对象的源代码。
toString()    把数组转换为字符串,并返回结果。
toLocaleString()    把数组转换为本地数组,并返回结果。
valueOf()     返回数组对象的原始值

4.数组遍历

var arr = [1, 3, 5, 7, 9, 11];
for(var i in arr){
    console.log(arr[i]);
}
for(var j=0; j<arr.length; j++){
    console.log(arr[j]);
}
for(var k=arr.length-1; k>=0; k--){
    console.log(arr[k]);
}
function Person(name, force) {
    this.name = name;
    this.force = force;
}
var perArr = [
    new Person("乔峰", 93),
    new Person("段誉", 87),
    new Person("虚竹", 89),
    new Person("扫地僧", 97),
    new Person("慕容博", 88),
    new Person("慕容复", 85),
    new Person("萧远山", 90),
];
var forceArr = [];
for (var i in perArr){
    if (perArr[i].force >= 90){
        forceArr.push(perArr[i]);
    }
}
console.log(forceArr);

2.String对象

1.创建

new String(s);
String(s);
// 字符串在底层是以字符数组的形式存储的,这源于js对字符串奇葩的设置:它是原始类型而不是引用类型。在其它大多数语言中,字符串都是引用类型。

2.属性

constructor  对创建该对象的函数的引用
length       字符串的长度
prototype    允许您向对象添加属性和方法

3.方法

http://www.w3school.com.cn/jsref/jsref_obj_string.asp
concat()         连接字符串。
split()          把字符串分割为字符串数组。
slice()          提取字符串的片断,并在新的字符串中返回被提取的部分。
indexOf()        检索字符串。
lastIndexOf()    从后向前搜索字符串。
substr()         从起始索引号提取字符串中指定数目的字符。
substring()      提取字符串中两个指定的索引号之间的字符。
charAt()         返回在指定位置的字符。
charCodeAt()     返回在指定的位置的字符的 Unicode 编码。
fromCharCode()   从字符编码创建一个字符串。
match()          找到一个或多个正则表达式的匹配。
replace()        替换与正则表达式匹配的子串。
search()         检索与正则表达式相匹配的值。
toSource()     代表对象的源代码。
toString()       返回字符串。
valueOf()        返回某个字符串对象的原始值。
localeCompare()  用本地特定的顺序来比较两个字符串。
anchor()         创建 HTML 锚。
toLocaleLowerCase()   把字符串转换为小写。
toLocaleUpperCase()   把字符串转换为大写。
toLowerCase()    把字符串转换为小写。
toUpperCase()    把字符串转换为大写。
big()           使用大号字体显示字符串。
small()          使用小字号来显示字符串。
bold()           使用粗体显示字符串。
italics()        使用斜体显示字符串。
sup()            把字符串显示为上标。
sub()            把字符串显示为下标。
strike()         使用删除线来显示字符串
link()          将字符串显示为链接。
blink()         显示闪动字符串。
fontcolor()     使用指定的颜色来显示字符串。
fontsize()      使用指定的尺寸来显示字符串。
fixed()         以打字机文本显示字符串。

3.RegExp

1.创建

new RegExp(pattern, attributes);
/pattern/attributes;
参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。
参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

2.属性

global         RegExp 对象是否具有标志 g。     
ignoreCase     RegExp 对象是否具有标志 i。 
lastIndex      一个整数,标示开始下一次匹配的字符位置。   
multiline      RegExp 对象是否具有标志 m。     
source         正则表达式的源文本。

3.方法

http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp
compile       编译正则表达式。
exec          检索字符串中指定的值。返回找到的值,并确定其位置。
test          检索字符串中指定的值。返回 true 或 false。

  4.支持正则表达式的 String 对象的方法

search        检索与正则表达式相匹配的值。     
match         找到一个或多个正则表达式的匹配。 
replace       替换与正则表达式匹配的子串。     
split         把字符串分割为字符串数组。
关于match
  如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。
  如果 regexp 具有标志 g,则 match() 方法将执行全局检索,找到 stringObject 中的所有匹配子字符串。若没有找到任何匹配的子串,则返回 null。
  match会将匹配到的结果返回到一个数组对象中,不论是一次或是多次匹配。
  在全局检索模式下,match() 即不提供与子表达式匹配的文本的信息,也不声明每个匹配子串的位置。如果您需要这些全局检索的信息,可以使用 RegExp.exec()
var str = "1234Like123Array789language";
result = str.match(/[a-zA-z]+/gi);
console.log(result instanceof Array); //true
console.log(result); // [ 'Like', 'Array', 'language' ]
var str = "1234Like123Array789language";
var match = str.match(/[a-zA-z]+/gi);
console.log(match);
var reg = new RegExp("(?<word>[a-zA-z]+)", "g");
var result;
var arr = [];
while ((result = reg.exec(str)) !== null){
    // console.log(result);
    // console.log(result instanceof Array);
    // console.log(reg.lastIndex);
    arr.push(result);
}
console.log(arr);

4.Date

1.创建

var myDate=new Date();

2.属性

constructor  返回对创建此对象的 Date 函数的引用。
prototype    可以向对象添加属性和方法。

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_date.asp
Date()               返回当日的日期和时间。
getDate()            从 Date 对象返回一个月中的某一天 (1 ~ 31)。
etDay()              从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth()           从 Date 对象返回月份 (0 ~ 11)。
getFullYear()        从 Date 对象以四位数字返回年份。
getHours()           返回 Date 对象的小时 (0 ~ 23)。
getMinutes()         返回 Date 对象的分钟 (0 ~ 59)。
getSeconds()         返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds()    返回 Date 对象的毫秒(0 ~ 999)。
setDate()            设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth()           设置 Date 对象中月份 (0 ~ 11)。
setFullYear()        设置 Date 对象中的年份(四位数字)。
setHours()           设置 Date 对象中的小时 (0 ~ 23)。
setMinutes()         设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds()         设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds()    设置 Date 对象中的毫秒 (0 ~ 999)。
对象中的秒钟 (0 ~ 59)。// setUTCMilliseconds()    根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。// toSource()  返回该对象的源代码。// toString()  把 Date 对象转换为字符串。// toTimeString()  把 Date 对象的时间部分转换为字符串。// toDateString()  把 Date 对象的日期部分转换为字符串。// toGMTString()   请使用 toUTCString() 方法代替。// toUTCString()   根据世界时,把 Date 对象转换为字符串。// toLocaleString()    根据本地时间格式,把 Date 对象转换为字符串。// toLocaleTimeString()    根据本地时间格式,把 Date 对象的时间部分转换为字符串。// toLocaleDateString()    根据本地时间格式,把 Date 对象的日期部分转换为字符串。// UTC()   根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。// valueOf()   返回 Date 对象的原始值。对象中的秒钟 (0 ~ 59)。// setUTCMilliseconds()    根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。// toSource()  返回该对象的源代码。// toString()  把 Date 对象转换为字符串。// toTimeString()  把 Date 对象的时间部分转换为字符串。// toDateString()  把 Date 对象的日期部分转换为字符串。// toGMTString()   请使用 toUTCString() 方法代替。// toUTCString()   根据世界时,把 Date 对象转换为字符串。// toLocaleString()    根据本地时间格式,把 Date 对象转换为字符串。// toLocaleTimeString()    根据本地时间格式,把 Date 对象的时间部分转换为字符串。// toLocaleDateString()    根据本地时间格式,把 Date 对象的日期部分转换为字符串。// UTC()   根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。// valueOf()   返回 Date 对象的原始值。
getTime()            返回 1970 年 1 月 1 日至今的毫秒数。
parse()              返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
getTimezoneOffset()  返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()         根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()          根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCMonth()        根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCFullYear()     根据世界时从 Date 对象返回四位数的年份。
getUTCHours()        根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMinutes()      根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCSeconds()      根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getUTCMilliseconds() 根据世界时返回 Date 对象的毫秒(0 ~ 999)。
setTime()            以毫秒设置 Date 对象。
setUTCDate()         根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCMonth()        根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCFullYear()     根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()        根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMinutes()      根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCSeconds()      根据世界时设置 Date

5.Math

1.创建

直接使用Math关键字即可
Math.属性
Math.方法([参数1, ...])

2.属性

E           返回算术常量 e,即自然对数的底数(约等于2.718)。
LN2         返回 2 的自然对数(约等于0.693)。
LN10        返回 10 的自然对数(约等于2.302)。
LOG2E       返回以 2 为底的 e 的对数(约等于 1.414)。
LOG10E      返回以 10 为底的 e 的对数(约等于0.434)。
PI          返回圆周率(约等于3.14159)。
SQRT1_2     返回返回 2 的平方根的倒数(约等于 0.707)。
SQRT2       返回 2 的平方根(约等于 1.414)。

3.方法

http://www.w3school.com.cn/jsref/jsref_obj_math.asp
abs(x)      返回数的绝对值。
acos(x)     返回数的反余弦值。
asin(x)     返回数的反正弦值。
atan(x)     以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x)  返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x)     对数进行上舍入。
cos(x)      返回数的余弦。
exp(x)      返回 e 的指数。
floor(x)    对数进行下舍入。
log(x)      返回数的自然对数(底为e)。
max(x,y)    返回 x 和 y 中的最高值。
min(x,y)    返回 x 和 y 中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    把数四舍五入为最接近的整数。
sin(x)      返回数的正弦。
sqrt(x)     返回数的平方根。
tan(x)      返回角的正切。
toSource()  返回该对象的源代码。
valueOf()   返回 Math 对象的原始值。

6.Number

1.创建

var myNum=new Number(value);
var myNum=Number(value);

  2.属性

MAX_VALUE   可表示的最大的数。
MIN_VALUE   可表示的最小的数。
NaN         非数字值。
NEGATIVE_INFINITY   负无穷大,溢出时返回该值。
POSITIVE_INFINITY   正无穷大,溢出时返回该值。
constructor 返回对创建此对象的 Number 函数的引用。
prototype   使您有能力向对象添加属性和方法。ue);

  3.方法

http://www.w3school.com.cn/jsref/jsref_obj_number.asp
toString        把数字转换为字符串,使用指定的基数。
toLocaleString  把数字转换为字符串,使用本地数字格式顺序。
toFixed         把数字转换为字符串,结果的小数点后有指定位数的数字。
toExponential   把对象的值转换为指数计数法。
toPrecision     把数字格式化为指定的长度。
valueOf         返回一个 Number 对象的基本数字值。

  7.Functions全局函数

http://www.w3school.com.cn/jsref/jsref_obj_global.asp
decodeURI()             解码某个编码的 URI。
decodeURIComponent()    解码一个编码的 URI 组件。
encodeURI()             把字符串编码为 URI。
encodeURIComponent()    把字符串编码为 URI 组件。
escape()                对字符串进行编码。
unescape()              对由 escape() 编码的字符串进行解码。
eval()                  计算 JavaScript 字符串,并把它作为脚本代码来执行。
getClass()              返回一个 JavaObject 的 JavaClass。
isFinite()              检查某个值是否为有穷大的数。
isNaN()                 检查某个值是否是数字。
Number()                把对象的值转换为数字。
parseFloat()            解析一个字符串并返回一个浮点数。
parseInt()              解析一个字符串并返回一个整数。
String()                把对象的值转换为字符串。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

js中自定义对象的解析

对js中事件模型的解析

以上就是对js的内建对象的解析的详细内容,更多请关注php中文网其它相关文章!

  • 相关标签:
  • 本文原创发布php中文网 ,转载请注明出处,感谢您的尊重!
  • 网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    条评论

    独孤九贱(4)_PHP视频教程

    江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。 PHP中文网出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

    独孤九贱(5)_ThinkPHP5视频教程

    ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《php.cn独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

    ThinkPHP5实战之[教学管理系统]

    本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

    独孤九贱(1)_HTML5视频教程

    《php.cn原创html5视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。 ...

    PHP入门视频教程之一周学会PHP

    所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

    ThinkPHP5快速开发企业站点[全程实录]更新中...

    本课以最新版ThinkPHP5.0.10为基础进行开发,全程实录一个完整企业点,从后台到前台,从控制器到路由的全套完整教程,不论是你是新人,还是有一定开发经验的程序员,都可以从中学到实用的知识~~

    Thinkphp3.2.3个人博客开发

    ThinkPHP是一个快速、开源的轻量级国产PHP开发框架,是业内最流行的PHP框架之一。本课程以博客系统为例,讲述如何使用TP实战开发,从中学习Thinkphp的实践应用。模版下载地址:http:/...

    PHP实战天龙八部之仿爱奇艺电影网站

    本课程是php实战开发课程,以爱奇艺电影网站为蓝本从零开发一个自己的网站。目的是让大家了解真实项目的架构及开发过程

    独孤九贱(8)_php从零开始开发属于自己的php框架

    本课以一个极简的PHP开发框架为案例,向您展示了一个PHP框架应该具有的基本功能,以及具体的实现方法,让您快速对PHP开发框架的底层实现有一个清楚的认识,为以后学习其实的开发框架打下坚实的基础。

    独孤九贱(3)_JavaScript视频教程

    javascript是运行在浏览器上的脚本语言,连续多年,被评为全球最受欢迎的编程语言。是前端开发必备三大法器中,最具杀伤力。如果前端开发是降龙十八掌,好么javascript就是第18掌:亢龙有悔。...

    直播实录:PHP魔鬼训练营[从零开始制作个人博客]

    本站9月直播课已经结束,本套教程是直播实录,没有报上名或者漏听学员福利来了,赶紧看看吧,说不定这里就有你的菜

    2018前端入门_HTML5

    轻松明快,简洁生动,让你快速走入HTML5的世界,体会语义化开发的魅力

    JavaScript极速入门_玉女心经系列

    JavaScript能够称得上是史上使用最广泛的编程语言,也是前端开发必须掌握的三技能之一:描述网页内容的HTML、描述网页样式的CSS以及描述网页行为的JavaScript。本章节将帮助大家迅速掌握...

    独孤九贱(7)_Bootstrap视频教程

    Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。为所有开发者、所有应用场景而设计,它让前端开发更快速、简单,所有开发者都能快速上手...

    PHP用户注册登录系统视频教程

    《php用户注册登录系统》主要介绍网站的登录注册功能,我们会从最简单的实现登录注册功能开始,增加验证码,cookie验证等,丰富网站的登录注册功能

    独孤九贱(2)_CSS视频教程

    《php.cn独孤九贱(2)-css视频教程》课程特色:php中文网原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了CSS知识...

    PHP学生管理系统视频教程

    《PHP学生管理系统视频教程》主要给大家讲解了HTML,PHP,MySQL之间的相互协作,实现动态的网页显示和获取数据.

    独孤九贱(6)_jQuery视频教程

    jQuery是一个快速、简洁的JavaScript框架。设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的...

    弹指间学会HTML视频教程

    《弹指间学会HTML视频教程》从最基本的概念开始讲起,步步深入,带领大家学习HTML,了解各种常用标签的意义以及基本用法,学习HTML知识为以后的学习打下基础

    最新微信小程序开发视频教程

    《最新微信小程序开发视频教程》本节课程是由微趋道录制,讲述了如何申请一个微信小程序,以及开发中需要使用哪些工具,和需要注意哪些等。

    • 昧光

      全栈工程师

    • 认证0级讲师
    • 5318篇
      文章总数
    • 272
      文章总浏览数

    头条

    推荐视频教程

  • javascript初级视频教程
  • jquery 基础视频教程
  • javascript三级联动视频教程
  • 独孤九贱(3)_JavaScript视频教程
  • 独孤九贱(6)_jQuery视频教程
  • 最新更新