澳门太阳娱乐集团官网-太阳集团太阳娱乐登录

JavaScript原生对象及扩展(收藏)
分类:网页制作

JavaScript 原生对象及扩张

2016/09/26 · JavaScript · 对象

初稿出处: trigkit4   

Object类型:

https://segmentfault.com/a/1190000002634958

放置对象与原生对象

内置(Build-in)对象与原生(Naitve)对象的界别在于:后面一个总是在发动机初阶化阶段就被创建好的目的,是继承者的叁个子集;而后面一个包蕴了有个别在运作进度中动态创造的靶子。

澳门太阳娱乐集团官网 1

//扩展:对JavaScript原生对象的扩展
//原理:原型对象
Object.prototype.keys = function(){
    var keys = [];
    for(var item in this)
        if(this.hasOwnProperty(item))//用于判断一个属性是否是对象实例定义的,还是从原型导入的
            keys.push(item);
    return keys;
}

var obj = {"name":"johnny","age":21};
obj.keys();//["name"."age"]

原生对象(New后的对象)

ECMA-262 把原生对象(native object)定义为“独立于宿主情状的 ECMAScript 达成提供的指标”。富含如下:

Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、伊娃lError、RangeError、ReferenceError、SyntaxError、TypeError、U揽胜IError、ActiveXObject(服务器方面卡塔尔、Enumerator(群集遍历类卡塔尔、RegExp(正则表明式)

1
Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError、ActiveXObject(服务器方面)、Enumerator(集合遍历类)、RegExp(正则表达式)

因此能够看出,轻便的话,原生对象便是 ECMA-262 定义的类(援用类型)。

来源:

  

停放对象(不须求New)

概念:由ECMAScript完成提供的靶子,独立于宿主情状,在三个本子程序试行的最初处。

澳门太阳娱乐集团官网,:每个内置对象(built-in object卡塔尔(英语:State of Qatar)都是原生对象(Native Object),一个内置的布局函数是八个内置的对象,也是一个结构函数。

来源:

举个栗子:

Native objects: Object (constructor卡塔尔国, Date, Math, parseInt, eval。 string 方法比方 indexOf 和 replace, array 方法, ... Host objects (假定是浏览器蒙受卡塔尔: window, document, location, history, XMLHttpRequest, setTimeout, getElementsByTagName, querySelectorAll, ...

1
2
3
Native objects: Object (constructor), Date, Math, parseInt, eval。 string 方法比如 indexOf 和 replace, array 方法, ...
 
Host objects (假定是浏览器环境): window, document, location, history, XMLHttpRequest, setTimeout, getElementsByTagName, querySelectorAll, ...

ECMA-262][2 只定义了多个新的放置对象,即 GlobalMath (它们也是原生对象,依照定义,各类内置对象都以原生对象)。

以下是ECMA-262概念的放置对象(built-in):

global、Object、Function、Array、String、Boolean、Number、Math、Date、RegExp、JSON、Error对象(Error, EvalError, RangeError, ReferenceError, SyntaxError, TypeError 和URIError)

1
global、Object、Function、Array、String、Boolean、Number、Math、Date、RegExp、JSON、Error对象(Error,   EvalError, RangeError, ReferenceError,   SyntaxError, TypeError 和URIError)

澳门太阳娱乐集团官网 2

我们也足以校勘内置对象的原型

JavaScript

if (!Array.prototype.forEach) { Array.prototype.forEach = function(fn){ for ( var i = 0; i < this.length; i++ ) { fn( this[i], i, this ); } }; } ["a", "b", "c"].forEach(function(value, index, array){ assert( value, "Is in position " + index + " out of " + (array.length - 1) ); });

1
2
3
4
5
6
7
8
9
10
11
if (!Array.prototype.forEach) {
  Array.prototype.forEach = function(fn){
    for ( var i = 0; i < this.length; i++ ) {
      fn( this[i], i, this );
    }
  };
}
["a", "b", "c"].forEach(function(value, index, array){
  assert( value, "Is in position " + index + " out of " + (array.length - 1) );
});

上述代码将出口:

PASS Is in position 0 out of 2 PASS Is in position 1 out of 2 PASS Is in position 2 out of 2

1
2
3
PASS Is in position 0 out of 2
PASS Is in position 1 out of 2
PASS Is in position 2 out of 2

介怀:扩充原型是很危殆的:

JavaScript

Object.prototype.keys = function(){ var keys = []; for ( var i in this ) keys.push( i ); return keys; }; var obj = { a: 1, b: 2, c: 3 }; assert( obj.keys().length == 3, "We should only have 3 properties." ); delete Object.prototype.keys;

1
2
3
4
5
6
7
8
9
10
11
12
Object.prototype.keys = function(){
  var keys = [];
  for ( var i in this )
    keys.push( i );
  return keys;
};
var obj = { a: 1, b: 2, c: 3 };
assert( obj.keys().length == 3, "We should only have 3 properties." );
delete Object.prototype.keys;

输出: FAIL We should only have 3 properties.

假如不是有非常须求而去扩张原生对象和原型(prototype)的做法是倒霉的

JavaScript

//不要这么做 Array.prototype.map = function(卡塔尔 { // code };

1
2
3
4
//不要这样做
Array.prototype.map = function() {
    // code
};

只有那样做是值得的,比如,向一些旧的浏览器中增添一些ECMAScript5中的方法。
在这里种情景下,大家平时这样做:

XHTML

<script type="text/javascript"> if (!Array.prototype.map) { Array.prototype.map = function() { //code }; } </script>

1
2
3
4
5
6
7
<script type="text/javascript">
    if (!Array.prototype.map) {
        Array.prototype.map = function() {
            //code
        };
    }
</script>

Number类型:

用原型扩张对象

对js原生对象的扩张无非正是往prototype里登记,举个例子,大家可现在String对象里扩展ltrim,rtrim等方式。js每一种对象都一连自Object,何况,对象和别的属性都因此prototype对象来继续。通过prototype对象,大家得以扩大任何对象,包蕴内建的靶子,如StringDate

Number.prototype.add = function(param){
    return this + param;
}

var n = 5;
n.add(3);//8

String对象的扩大

JavaScript

<script type="text/javascript"> if(typeof String.prototype.ltrim=='undefined'){ String.prototype.ltrim = function(){ var s = this; s = s.replace(/^s*/g, ''); return s; } } if(typeof String.prototype.rtrim=='undefined'){ String.prototype.rtrim = function(){ var s = this; s = s.replace(/s*$/g, ''); return s; } } if(typeof String.prototype.trim=='undefined'){ String.prototype.trim = function(){ return this.ltrim().rtrim(); } } if(typeof String.prototype.htmlEncode=='undefined'){ String.prototype.htmlEncode = function(encodeNewLine){//encodeNewLine:是否encode换行符 var s = this; s = s.replace(/&/g, '&'); s = s.replace(/</g, '<'); s = s.replace(/>/g, '>'); s = s.replace(/'/g, '"'); if(encodeNewLine){ s = s.replace(/rn/g, '<br />'); s = s.replace(/r/g, '<br />'); s = s.replace(/n/g, '<br />'); } return s; } } </script>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<script type="text/javascript">
    if(typeof String.prototype.ltrim=='undefined'){
        String.prototype.ltrim = function(){
            var s = this;
            s = s.replace(/^s*/g, '');
            return s;
        }
    }
 
    if(typeof String.prototype.rtrim=='undefined'){
        String.prototype.rtrim = function(){
            var s = this;
            s = s.replace(/s*$/g, '');
            return s;
        }
    }
 
    if(typeof String.prototype.trim=='undefined'){
        String.prototype.trim = function(){
            return this.ltrim().rtrim();
        }
    }
 
    if(typeof String.prototype.htmlEncode=='undefined'){
        String.prototype.htmlEncode = function(encodeNewLine){//encodeNewLine:是否encode换行符
            var s = this;
            s = s.replace(/&/g, '&amp;');
            s = s.replace(/</g, '&lt;');
            s = s.replace(/>/g, '&gt;');
            s = s.replace(/'/g, '&quot;');
            if(encodeNewLine){
                s = s.replace(/rn/g, '<br />');
                s = s.replace(/r/g, '<br />');
                s = s.replace(/n/g, '<br />');
            }
            return s;
        }
    }
</script>

 

Date对象的扩充

getDaysInMonth:获取某月有稍许天

JavaScript

Date.getDaysInMonth = function (year, month) { var days = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31 break; case 4: case 6: case 9: case 11: days = 30; break; case 2: if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) days = 29; else days = 28; break; } return days; } if (typeof Date.prototype.format == 'undefined') { Date.prototype.format = function (mask) { var d = this; var zeroize = function (value, length) { if (!length) length = 2; value = String(value); for (var i = 0, zeros = ''; i < (length - value.length); i++) { zeros += '0'; } return zeros + value; }; return mask.replace(/"[^"]*"|'[^']*'|b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])1?|[lLZ])b/g, function ($0) { switch ($0) { case 'd': return d.getDate(); case 'dd': return zeroize(d.getDate()); case 'ddd': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][d.getDay()]; case 'dddd': return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][d.getDay()]; case 'M': return d.getMonth() + 1; case 'MM': return zeroize(d.getMonth() + 1); case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()]; case 'MMMM': return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][d.getMonth()]; case 'yy': return String(d.getFullYear()).substr(2); case 'yyyy': return d.getFullYear(); case 'h': return d.getHours() % 12 || 12; case 'hh': return zeroize(d.getHours() % 12 || 12); case 'H': return d.getHours(); case 'HH': return zeroize(d.getHours()); case 'm': return d.getMinutes(); case 'mm': return zeroize(d.getMinutes()); case 's': return d.getSeconds(); case 'ss': return zeroize(d.getSeconds()); case 'l': return zeroize(d.getMilliseconds(), 3); case 'L': var m = d.getMilliseconds(); if (m > 99) m = Math.round(m / 10); return zeroize(m); case 'tt': return d.getHours() < 12 ? 'am' : 'pm'; case 'TT': return d.getHours() < 12 ? 'AM' : 'PM'; case 'Z': return d.toUTCString().match(/[A-Z]+$/); // Return quoted strings with the surrounding quotes removed default: return $0.substr(1, $0.length - 2); } }); }; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Date.getDaysInMonth = function (year, month) {
            var days = 0;
            switch (month) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    days = 31
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    days = 30;
                    break;
                case 2:
                    if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))
                        days = 29;
                    else
                        days = 28;
                    break;
            }
            return days;
        }
 
        if (typeof Date.prototype.format == 'undefined') {
            Date.prototype.format = function (mask) {
 
                var d = this;
 
                var zeroize = function (value, length) {
 
                    if (!length) length = 2;
 
                    value = String(value);
 
                    for (var i = 0, zeros = ''; i < (length - value.length); i++) {
 
                        zeros += '0';
 
                    }
 
                    return zeros + value;
 
                };
 
                return mask.replace(/"[^"]*"|'[^']*'|b(?:d{1,4}|m{1,4}|yy(?:yy)?|([hHMstT])1?|[lLZ])b/g, function ($0) {
 
                    switch ($0) {
 
                        case 'd': return d.getDate();
 
                        case 'dd': return zeroize(d.getDate());
 
                        case 'ddd': return ['Sun', 'Mon', 'Tue', 'Wed', 'Thr', 'Fri', 'Sat'][d.getDay()];
 
                        case 'dddd': return ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'][d.getDay()];
 
                        case 'M': return d.getMonth() + 1;
 
                        case 'MM': return zeroize(d.getMonth() + 1);
 
                        case 'MMM': return ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'][d.getMonth()];
 
                        case 'MMMM': return ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'][d.getMonth()];
 
                        case 'yy': return String(d.getFullYear()).substr(2);
 
                        case 'yyyy': return d.getFullYear();
 
                        case 'h': return d.getHours() % 12 || 12;
 
                        case 'hh': return zeroize(d.getHours() % 12 || 12);
 
                        case 'H': return d.getHours();
 
                        case 'HH': return zeroize(d.getHours());
 
                        case 'm': return d.getMinutes();
 
                        case 'mm': return zeroize(d.getMinutes());
 
                        case 's': return d.getSeconds();
 
                        case 'ss': return zeroize(d.getSeconds());
 
                        case 'l': return zeroize(d.getMilliseconds(), 3);
 
                        case 'L': var m = d.getMilliseconds();
 
                            if (m > 99) m = Math.round(m / 10);
 
                            return zeroize(m);
 
                        case 'tt': return d.getHours() < 12 ? 'am' : 'pm';
 
                        case 'TT': return d.getHours() < 12 ? 'AM' : 'PM';
 
                        case 'Z': return d.toUTCString().match(/[A-Z]+$/);
 
                            // Return quoted strings with the surrounding quotes removed    
 
                        default: return $0.substr(1, $0.length - 2);
 
                    }
 
                });
 
            };
        }

利用原生js完结复制对象及扩张

jQueryextend()主意能很便利的贯彻增加对象方法,这里要落实的是:使用原生js完成复制对象,扩充对象,形似jQuery中的extend()方法

JavaScript

var obj1 = { name : 'trigkit4', age : 22 }; var obj2 = { name : 'frank', age : 21, speak : function(卡塔尔(قطر‎{ alert("hi, I'm + name "卡塔尔; } }; var obj3 ={ age : 20 }; function cloneObj(oldObj卡塔尔 { //复制对象方法 if (typeof(oldObj卡塔尔国 != 'object') return oldObj; if (oldObj == null) return oldObj; var newObj = Object(); for (var i in oldObj) newObj[i] = cloneObj(oldObj[i]卡塔尔(قطر‎; return newObj; } function extendObj(卡塔尔 { //扩张对象 var args = arguments;//将传递过来的参数数组赋值给args变量 if (args.length < 2卡塔尔 return; var temp = cloneObj(args[0]卡塔尔(英语:State of Qatar); //调用复制对象方法 for (var n = 1; n < args.length; n++卡塔尔(قطر‎ { for (var i in args[n]) { temp[i] = args[n][i]; } } return temp; } var obj =extendObj(obj1,obj2,obj3); console.log(obj);//{ name: 'frank', age: 20, speak: [Function] } console.log(obj1);//{ name: 'trigkit4', age: 22 } console.log(obj2);//{ name: 'frank', age: 21, speak: [Function] } console.log(obj3);//{ age: 20 }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var obj1 = {
    name : 'trigkit4',
    age : 22
};
var obj2 = {
    name : 'frank',
    age : 21,
    speak : function(){
        alert("hi, I'm + name ");
    }
};
 
var obj3 ={
    age : 20
};
 
function cloneObj(oldObj) { //复制对象方法
    if (typeof(oldObj) != 'object') return oldObj;
    if (oldObj == null) return oldObj;
    var newObj = Object();
    for (var i in oldObj)
        newObj[i] = cloneObj(oldObj[i]);
    return newObj;
}
 
function extendObj() { //扩展对象
    var args = arguments;//将传递过来的参数数组赋值给args变量
    if (args.length < 2) return;
    var temp = cloneObj(args[0]); //调用复制对象方法
    for (var n = 1; n < args.length; n++) {
        for (var i in args[n]) {
            temp[i] = args[n][i];
        }
    }
    return temp;
}
var obj =extendObj(obj1,obj2,obj3);
console.log(obj);//{ name: 'frank', age: 20, speak: [Function] }
console.log(obj1);//{ name: 'trigkit4', age: 22 }
console.log(obj2);//{ name: 'frank', age: 21, speak: [Function] }
console.log(obj3);//{ age: 20 }

es5-safe 模块

es5-safe 模块里,仅扩充了能够较好落到实处的能够优哉游哉接收的意气风发部分方法,包括:

JavaScript

Function.prototype.bind Object.create Object.keys Array.isArray Array.prototype.forEach Array.prototype.map Array.prototype.filter Array.prototype.every Array.prototype.some Array.prototype.reduce Array.prototype.reduceRight Array.prototype.indexOf Array.prototype.lastIndexOf String.prototype.trim Date.now

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Function.prototype.bind
Object.create
Object.keys
Array.isArray
Array.prototype.forEach
Array.prototype.map
Array.prototype.filter
Array.prototype.every
Array.prototype.some
Array.prototype.reduce
Array.prototype.reduceRight
Array.prototype.indexOf
Array.prototype.lastIndexOf
String.prototype.trim
Date.now

详情:

对象的成立

JavaScript 协助各类档案的次序的目的:内部对象、生成的目的、宿主给出的靶子(如 Internet 浏览器中的 windowdocument)以及ActiveX 对象(外界组件)。

Microsoft Jscript 提供了 11 个内部(或“内置”)对象。它们是Array、Boolean、Date、Function、Global、Math、Number、Object、RegExp、Error 以及 String 对象。每二个目的有连锁的秘技和性子,

JavaScript中目的的创导有以下二种艺术:

(1)使用内置对象 (2)使用JSON符号 (3)自定义对象协会

1
2
3
(1)使用内置对象
(2)使用JSON符号
(3)自定义对象构造

生机勃勃、使用内置对象

JavaScript可用的放权对象可分为三种: 1,JavaScript语言原生对象(语言级对象),如String、Object、Function等; 2,JavaScript运营期的宿主对象(境况宿主级对象),如window、document、body等。

1
2
3
4
JavaScript可用的内置对象可分为两种:
 
1,JavaScript语言原生对象(语言级对象),如String、Object、Function等;
2,JavaScript运行期的宿主对象(环境宿主级对象),如window、document、body等。

松开对象列表

Array Boolean Date Error EvalError Function Infinity JSON Map Math NaN Number Object ParallelArray Promise Proxy RegExp Set String Symbol SyntaxError Uint32Array WeakSet decodeURI decodeURIComponent() encodeURI() encodeURIComponent() escape()已废弃 eval() isFinite() isNaN() null parseFloat parseInt undefined

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Array
Boolean
Date
Error
EvalError
Function
Infinity
JSON
Map
Math
NaN
Number
Object
ParallelArray
Promise
Proxy
RegExp
Set
String
Symbol
SyntaxError
Uint32Array
WeakSet
decodeURI
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()已废弃
eval()
isFinite()
isNaN()
null
parseFloat
parseInt
undefined

上述资料来自:

自定义对象组织

创办高档对象组织有二种办法:使用“this”关键字布局、使用原型prototype构造

Date对象

get连串措施

getDate(卡塔尔国 从 Date 对象回来三个月初的某一天 (1 ~ 31卡塔尔(英语:State of Qatar)。 getDay(卡塔尔(英语:State of Qatar) 从 Date 对象回来19日中的某一天 (0 ~ 6卡塔尔。 getMonth(卡塔尔(英语:State of Qatar) 从 Date 对象回来月份 (0 ~ 11卡塔尔。 getFullYear(卡塔尔(英语:State of Qatar) 从 Date 对象以四人数字再次回到年份。注意不要使用getYear(卡塔尔国。 getHours(卡塔尔国 再次来到 Date 对象的小时 (0 ~ 23卡塔尔(英语:State of Qatar)。 getMinutes(卡塔尔(英语:State of Qatar) 重返 Date 对象的分钟 (0 ~ 59卡塔尔(英语:State of Qatar)。 getSeconds(卡塔尔国 重返 Date 对象的秒数 (0 ~ 59卡塔尔(英语:State of Qatar)。 getMilliseconds(卡塔尔 再次回到 Date 对象的阿秒(0 ~ 999卡塔尔(قطر‎。 getTime(卡塔尔国 再次回到 壹玖陆捌 年 1 月 1 日至今的阿秒数。 getTimezoneOffset(卡塔尔国 再次回到当地时间与Green威治标依时期 (克林霉素T卡塔尔(英语:State of Qatar) 的分钟差。 getUTCDate(卡塔尔 依照世界时从 Date 对象重回月首的一天 (1 ~ 31卡塔尔国。 getUTCDay(卡塔尔国依照世界时从 Date 对象回来周中的一天 (0 ~ 6卡塔尔(قطر‎。 getUTCMonth(卡塔尔(قطر‎依据世界时从 Date 对象回来月份 (0 ~ 11卡塔尔国。 getUTCFullYear(卡塔尔国 依照世界时从 Date 对象回到几人数的年度。 getUTCHours(卡塔尔 依照世界时重临 Date 对象的小时(0 ~ 23卡塔尔(英语:State of Qatar)。 getUTCMinutes(卡塔尔国 依据世界时重返 Date 对象的分钟 (0 ~ 59卡塔尔国。 getUTCSeconds(卡塔尔国 依据世界时重回 Date 对象的分钟 (0 ~ 59卡塔尔国。 getUTCMilliseconds(卡塔尔国 依据世界时重临 Date 对象的微秒(0 ~ 999)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay() 从 Date 对象返回一周中的某一天 (0 ~ 6)。
getMonth() 从 Date 对象返回月份 (0 ~ 11)。
getFullYear() 从 Date 对象以四位数字返回年份。注意不要使用getYear()。
getHours() 返回 Date 对象的小时 (0 ~ 23)。
getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
getTime() 返回 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)。

set种类措施

setDate(卡塔尔(英语:State of Qatar) 设置 Date 对象中月的某一天 (1 ~ 31卡塔尔(قطر‎。 setMonth(卡塔尔国 设置 Date 对象中月份 (0 ~ 11卡塔尔(英语:State of Qatar)。 setFullYear(卡塔尔 设置 Date 对象中的年份(四个人数字)。注意不要接收setYear(卡塔尔(英语:State of Qatar)方法。 setHours(卡塔尔 设置 Date 对象中的小时 (0 ~ 23卡塔尔(قطر‎。 setMinutes(卡塔尔国 设置 Date 对象中的分钟 (0 ~ 59卡塔尔(قطر‎。 setSeconds(卡塔尔国 设置 Date 对象中的分钟 (0 ~ 59卡塔尔国。 setMilliseconds(卡塔尔(英语:State of Qatar)设置 Date 对象中的微秒 (0 ~ 999卡塔尔国。 setTime(卡塔尔 以纳秒设置 Date 对象。 setUTCDate(卡塔尔 依照世界时设置 Date 对象中月份的一天 (1 ~ 31卡塔尔。 setUTCMonth(卡塔尔(قطر‎ 根据世界时设置 Date 对象中的月份 (0 ~ 11卡塔尔(قطر‎。 setUTCFullYear(卡塔尔(قطر‎ 依据世界时设置 Date 对象中的年份(几人数字)。 setUTCHours(卡塔尔(英语:State of Qatar) 依据世界时设置 Date 对象中的小时 (0 ~ 23卡塔尔(英语:State of Qatar)。 setUTCMinutes(卡塔尔国 依照世界时设置 Date 对象中的秒钟 (0 ~ 59卡塔尔(قطر‎。 setUTCSeconds(卡塔尔(英语:State of Qatar) 依照世界时设置 Date 对象中的分钟 (0 ~ 59卡塔尔(英语:State of Qatar)。 setUTCMilliseconds(卡塔尔(英语:State of Qatar) 依照世界时设置 Date 对象中的纳秒 (0 ~ 999)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
setMonth() 设置 Date 对象中月份 (0 ~ 11)。
setFullYear() 设置 Date 对象中的年份(四位数字)。注意不要使用setYear()方法。
setHours() 设置 Date 对象中的小时 (0 ~ 23)。
setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
setMilliseconds() 设置 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 对象中的秒钟 (0 ~ 59)。
setUTCMilliseconds() 根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。

toString类别措施

toString(卡塔尔(英语:State of Qatar) 把 Date 对象转变为字符串,toString(卡塔尔(قطر‎总是回到多个用日式匈牙利(Magyarország卡塔尔语表明的字符串。 toTimeString(卡塔尔(英语:State of Qatar) 把 Date 对象的年月有个别更改为字符串。 toDateString(卡塔尔(英语:State of Qatar) 把 Date 对象的日期部分改变为字符串。 toUTCString(卡塔尔国 根据世界时,把 Date 对象调换为字符串。 toLocaleString(卡塔尔(قطر‎ 依据本地时间格式,把 Date 对象转变为字符串。 toLocaleTimeString(卡塔尔(英语:State of Qatar) 分公司方时间格式,把 Date 对象的日子某个改变为字符串。 toLocaleDateString(卡塔尔国 事务部面时间格式,把 Date 对象的日期部分改换为字符串。

1
2
3
4
5
6
7
toString() 把 Date 对象转换为字符串,toString()总是返回一个用美式英语表达的字符串。
toTimeString() 把 Date 对象的时间部分转换为字符串。
toDateString() 把 Date 对象的日期部分转换为字符串。
toUTCString() 根据世界时,把 Date 对象转换为字符串。
toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。

Array对象

属性

constructor 钦赐创造对象原型的函数。 index 假如数组是经过正则表明式相配创制的,比配是字符串的下标索引为0. input 借使数组是透过正则表明式匹配创立的,重临原始的字符串。 length长度 重临数组二月素个数. prototype 允许为富有目的附加属性.

1
2
3
4
5
6
7
8
9
10
11
12
13
constructor
    指定创建对象原型的函数。
 
index
    如果数组是通过正则表达式匹配创建的,比配是字符串的下标索引为0.
 
input
    如果数组是通过正则表达式匹配创建的,返回原始的字符串。
length长度
    返回数组中元素个数.
 
prototype
    允许为所有对象附加属性.

方法

这一个形式可以转移数组自个儿:

pop 移除数组的末梢叁个因素,重临值是被去除的要素。 push 在数组的结尾增多一个要么五个成分,再次回到值是新的数组的长度。 reverse 颠尾数组凉月素的逐后生可畏,原先第三个要素未来成为最终二个,同样原先的终极四个成分变为了当今的首先个,也正是数组的目录产生了变化。 shift 删除数组的率先个要素,再次回到值是去除的元素。 sort 对数组中的成分实行排序。 splice 增添或删除数组中的贰个或三个要素。 unshift 增添三个照旧四个要素在数组的发端,重临值是新的数组的长短。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
pop
    移除数组的最后一个元素,返回值是被删除的元素。
 
push
    在数组的末尾添加一个或者多个元素,返回值是新的数组的长度。
 
reverse
    颠倒数组中元素的顺序,原先第一个元素现在变成最后一个,同样原先的最后一个元素变成了现在的第一个,也就是数组的索引发生了变化。
 
shift
    删除数组的第一个元素,返回值是删除的元素。
 
sort
    对数组中的元素进行排序。
 
splice
    添加或删除数组中的一个或多个元素。
 
unshift
    添加一个或者多个元素在数组的开头,返回值是新的数组的长度。

Accessor 方法

那几个进程不转移数组自个儿

concat 重返叁个富含此数组和此外数组和/或值的咬合的新数组 indexOf 重临第三个与给定参数相等的数组成分的目录,未有找到则赶回-1。 join 将享有的数组元素连接成三个字符串。 lastIndexOf 重回在数组中寻觅到的与给定参数相等的因素的末段(最大)索引。 slice 重临数组中的黄金年代段。 toSource Returns an array literal representing the specified array; you can use this value to create a new array. Overrides the Object.toSource method. toString 再次来到代表该数组及其成分的字符,重写Object.toString 过程. valueOf Returns the primitive value of the array. Overrides the Object.valueOf method.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
concat
    返回一个包含此数组和其他数组和/或值的结合的新数组
indexOf
    返回第一个与给定参数相等的数组元素的索引,没有找到则返回-1。
join
    将所有的数组元素连接成一个字符串。
 
lastIndexOf
    返回在数组中搜索到的与给定参数相等的元素的最后(最大)索引。
 
slice
    返回数组中的一段。
 
toSource
    Returns an array literal representing the specified array; you can use this value to create a new array. Overrides the Object.toSource method.
 
toString
    返回代表该数组及其元素的字符,重写Object.toString 过程.
 
valueOf
    Returns the primitive value of the array. Overrides the Object.valueOf method.

循环(迭代)过程

filter 对数组中的每叁个要素调用参数中钦命的过滤函数,并将对此过滤函数重临值为true的那二个数组成分集结为新的数组重返。 forEach 对数组的每一个因素依次调用参数中钦定的函数。 every 假若数组中每八个成分都知足参数中提供的测量检验函数,则赶回真。 map Creates a new array with the results of calling a provided function on every element in this array. some 若是数组中最稀有几个要素知足参数函数的测验,则赶回true。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
filter
    对数组中的每一个元素调用参数中指定的过滤函数,并将对于过滤函数返回值为true的那些数组元素集合为新的数组返回。
 
forEach
    对数组的每一个元素依次调用参数中指定的函数。
 
every
    如果数组中每一个元素都满足参数中提供的测试函数,则返回真。
 
map
    Creates a new array with the results of calling a provided function on every element in this array.
 
some
    如果数组中至少有一个元素满足参数函数的测试,则返回true。

总结:

转移原数组的格局:pop(卡塔尔(英语:State of Qatar)、push(卡塔尔(قطر‎、reverse(卡塔尔(英语:State of Qatar)、shift(卡塔尔(英语:State of Qatar)、sort(卡塔尔国、splice(卡塔尔(قطر‎、unshift()不退换原数组的办法:concat(卡塔尔(قطر‎、join(卡塔尔(قطر‎、slice(卡塔尔、toString(卡塔尔(قطر‎

1
2
3
改变原数组的方法:pop()、push()、reverse()、shift()、sort()、splice()、unshift()
 
不改变原数组的方法:concat()、join()、slice()、toString()

Boolean

属性

JavaScript

Boolean.length 长度属性,值为1. Boolean.prototype 表示Boolean构造器的原型.

1
2
3
4
Boolean.length
    长度属性,值为1.
Boolean.prototype
    代表Boolean构造器的原型.

方法

JavaScript

Boolean.prototype.toSource() Boolean.prototype.toString() Boolean.prototype.valueOf()

1
2
3
Boolean.prototype.toSource()
Boolean.prototype.toString()
Boolean.prototype.valueOf()

String 对象

属性

JavaScript

String.length String.prototype

1
2
String.length
String.prototype

方法:

JavaScript

charAt(卡塔尔(قطر‎ 方法可回到钦定地点的字符。stringObject.charAt(index卡塔尔国charCodeAt(卡塔尔(英语:State of Qatar) 方法可重临钦命地点的字符的 Unicode 编码。那几个重临值是 0 – 65535 之间的子弹头。 stringObject.charCodeAt(index卡塔尔国 concat(卡塔尔方法用于连接五个或两个字符串。 stringObject.concat(stringX, stringX, …, stringX卡塔尔(قطر‎ indexOf(卡塔尔(قطر‎方法可重临某些钦定的字符串值在字符串中第三遍面世的职务。 stringObject.indexOf(searchvalue, fromindex卡塔尔(قطر‎ lastIndexOf()方法可再次来到三个内定的字符串值最终出现之处,在一个字符串中的钦点地点从后迈入寻找。 localeCompare(卡塔尔(英语:State of Qatar):用本地特定的依次来相比较三个字符串stringObject.localeCompare(target卡塔尔国match(卡塔尔 方法可在字符串内寻找内定的值,或找到三个或多少个正则表达式的合营。 该形式相符 indexOf(卡塔尔(قطر‎ 和 lastIndexOf(卡塔尔(英语:State of Qatar),然而它回到钦点的值,并非字符串的职位。 stringObject.match(regexp卡塔尔(قطر‎ replace()方法用于在字符串中用一些字符替换另一些字符,或沟通多少个与正则表明式相称的子串。stringObject.replace(regexp/substr, replacement卡塔尔(قطر‎ search(卡塔尔(قطر‎方法用于检索字符串中内定的子字符串,或索求与正则表明式相相配的子字符串。 stringObject.search(regexp卡塔尔国 slice(卡塔尔(قطر‎方法可领到字符串的有个别部分,并以新的字符串重临被提取的局部。 stringObject.slice(start, end卡塔尔国substring(卡塔尔国不推荐使用,提出利用slice(卡塔尔国代替。 substr(卡塔尔不推荐使用,指出采纳slice(卡塔尔国代替。 toLocaleLowerCase(卡塔尔国不推荐使用,只在Turkey语等个别语种中有用,建议选取toLowerCase(卡塔尔国取代。 toLocaleUpperCase(卡塔尔不引入应用,只在Turkey语等少数语种中有用,提议利用toUpperCase(卡塔尔(英语:State of Qatar)代替。 toLowerCase(卡塔尔 方法用于把字符串调换为小写。 toUpperCase(卡塔尔国方法用于把字符串调换为大写。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
charAt() 方法可返回指定位置的字符。stringObject.charAt(index)
 
charCodeAt() 方法可返回指定位置的字符的 Unicode 编码。这个返回值是 0 – 65535 之间的整数。 stringObject.charCodeAt(index)
 
concat() 方法用于连接两个或多个字符串。
stringObject.concat(stringX, stringX, …, stringX)
  
indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
stringObject.indexOf(searchvalue, fromindex)
 
lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
 
localeCompare():用本地特定的顺序来比较两个字符串stringObject.localeCompare(target)
 
match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。
该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。
stringObject.match(regexp)
 
 
replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。stringObject.replace(regexp/substr, replacement)
 
search() 方法用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串。
stringObject.search(regexp)
 
slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。
stringObject.slice(start, end)
 
substring()不推荐使用,建议使用slice()替代。
 
substr()不推荐使用,建议使用slice()替代。
 
toLocaleLowerCase()不推荐使用,只在土耳其语等少数语种中有用,建议使用toLowerCase()替代。
 
toLocaleUpperCase()不推荐使用,只在土耳其语等少数语种中有用,建议使用toUpperCase()替代。
 
toLowerCase() 方法用于把字符串转换为小写。
 
toUpperCase() 方法用于把字符串转换为大写。

注意:String 对象的措施 slice()、substring()substr() 都可回到字符串的内定部分。刚毅提议在有着场面都使用 slice()方法。

RegExp对象

属性

RegExp.prototype.constructor 创制该正则对象的构造函数。 RegExp.prototype.global 是还是不是开启全局匹配,也正是卓绝指标字符串中装有望的相称项,而不是只实行第一遍相称。 RegExp.prototype.ignoreCase 在匹配字符串时是还是不是要不经意字符的轻重写。 RegExp.prototype.lastIndex 后一次卓殊起来的字符串索引地方。 RegExp.prototype.multiline 是或不是张开多行方式相配(影响 ^ 和 $ 的作为) RegExp.prototype.source 正则对象的源形式文本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
RegExp.prototype.constructor
创建该正则对象的构造函数。
RegExp.prototype.global
是否开启全局匹配,也就是匹配目标字符串中所有可能的匹配项,而不是只进行第一次匹配。
 
RegExp.prototype.ignoreCase
在匹配字符串时是否要忽略字符的大小写。
 
RegExp.prototype.lastIndex
下次匹配开始的字符串索引位置。
 
RegExp.prototype.multiline
是否开启多行模式匹配(影响 ^ 和 $ 的行为)
 
RegExp.prototype.source
正则对象的源模式文本。

方法

JavaScript

RegExp.prototype.exec(卡塔尔国 在目标字符串中实践壹遍正则匹配操作。 RegExp.prototype.test(卡塔尔 测验当前正则是还是不是能同盟指标字符串。 RegExp.prototype.toString(卡塔尔(قطر‎再次回到贰个字符串,其值为该正则对象的字面量方式。覆盖了Object.prototype.toString()方法。

1
2
3
4
5
6
7
RegExp.prototype.exec()
    在目标字符串中执行一次正则匹配操作。
RegExp.prototype.test()
    测试当前正则是否能匹配目标字符串。
RegExp.prototype.toString()
    返回一个字符串,其值为该正则对象的字面量形式。覆盖了Object.prototype.toString() 方法。

Object对象

当以非构造函数格局被调用时,Object 等同于 new Object()

属性或方法

Object的各样实例都有所协同的骨干质量和方式

属性或者方法 说明
constructor 指向创建当前对象的构造函数
hasOwnProperty(name) 检测给定属性name在实例对象(不是原型对象)中是否存在。name以字符串形式指定
isPropertyOf(object) 检测传入的对象object是否该方法调用者的原型对象。一般格式:Class.prototype.isPropertyOf(object)
propertyIsEnumerable(pr) 检测属性pr能否用for-in循环枚举。属性pro用字符串形式指定
toLocaleString() 返回对象的字符串表示。与地区和环境对应
toString() 返回对象的字符串表示
valueOf() 返回对象的字符串、数值或布尔值表示

静态方法

JavaScript

Object.create(prototype, descriptors卡塔尔(قطر‎以钦赐的原型创制对象,并且能够(可选)的设置对象的属性 Object.defineProperty(object, propertyname, descriptor卡塔尔(قطر‎对钦赐的对象的叁天性质设置增多的值调控 Object.defineProperties(object, descriptors卡塔尔(英语:State of Qatar) 对钦命的指标的后生可畏组属性提供充分的值调控Object.getOwnPropertyDescriptor(object, propertyname卡塔尔国 再次来到属性的概念 Object.getOwnPropertyNames(object卡塔尔再次来到全数属性的称呼,哪怕说是不能够枚举的性能Object.preventExtensions(object卡塔尔(英语:State of Qatar) 幸免新的品质增添到对象 Object.isExtensible(object卡塔尔国 是或不是可增加属性到对象 Object.seal(object卡塔尔(قطر‎阻止向钦赐对象增加新属性或删除现成属性 Object.freeze(object卡塔尔国幸免现成属性和属性值的改动,并防止新特点的增加。 Object.isFrozen(object卡塔尔国检查当前目的是或不是已冷冻 Object.getPrototypeOf(object卡塔尔(英语:State of Qatar) 重返钦点对象的原型

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Object.create(prototype, descriptors)
以指定的原型创建对象,并且可以(可选)的设置对象的属性
        
Object.defineProperty(object, propertyname, descriptor)
对指定的对象的一个属性设置丰富的值控制
 
Object.defineProperties(object, descriptors)
对指定的对象的一组属性提供丰富的值控制        
    
Object.getOwnPropertyDescriptor(object, propertyname)
返回属性的定义
 
Object.getOwnPropertyNames(object)
返回所有属性的名称,哪怕说是不能枚举的属性
 
Object.preventExtensions(object)
防止新的属性添加到对象
 
Object.isExtensible(object)
是否可添加属性到对象
 
Object.seal(object)
阻止向指定对象添加新属性或删除现有属性
 
Object.freeze(object)
防止现有属性和属性值的修改,并防止新特性的添加。
 
Object.isFrozen(object)
检查当前对象是否已冻结
 
Object.getPrototypeOf(object)
返回指定对象的原型

全局属性和方法

全局方法

澳门太阳娱乐集团官网 3

全局属性

澳门太阳娱乐集团官网 4

1 赞 3 收藏 评论

澳门太阳娱乐集团官网 5

本文由澳门太阳娱乐集团官网发布于网页制作,转载请注明出处:JavaScript原生对象及扩展(收藏)

上一篇:前端幼功进级(三卡塔 尔(英语:State of Qatar) 下一篇:没有了
猜你喜欢
热门排行
精彩图文