文档章节

js 常用标准库内置属性方法汇总

ricardohn
 ricardohn
发布于 2016/12/01 14:01
字数 1317
阅读 5
收藏 1

常用Object的属性和方法

创建空Object


var o1 = {};
var o2 = Object.create(Object.prototype);

创建Object

var o3 = {
    str: "string...",
    fun: function() {
        return this.str;
    }
};

给对象添加属性

Object.defineProperty(o1, "newPropertyName", { value: "str", enumerable: true, writable: true });

给对象添加多个属性

Object.defineProperties(o1, {
    newPropertyName1: { value: "str1", writable: false },
    newPropertyName2: { value: "str2", writable: true }
});

给对象添加getter

Object.defineProperty(o1, "logIt", {
    get: function () {
        return this.newPropertyName;
    }
});

给对象添加setter

Object.defineProperty(o1, "renew", {
    set: function (newValue) {
        this.newPropertyName = newValue;
    }
});

返回属性配置(对象)

Object.getOwnPropertyDescriptor(o1, "newPropertyName");

返回所有属性名(数组)

Object.getOwnPropertyNames(o1);

返回对象原型(对象)

Object.getPrototypeOf(o1);

阻止对象扩展

Object.preventExtensions(o1);

冻结对象

Object.freeze(o1);

密封对象

Object.seal(o1);

检测是否可扩展(布尔值)

Object.isExtensible(o1);

检测是否冻结(布尔值)

Object.isFrozen(o1);

检测是否密封(布尔值)

Object.isSealed(o1);

对象原型对象(对象实例)的属性和方法

构造函数

o1.constructor;

检测非继承属性是否存在(布尔值)

o1.hasOwnProperty("newPropertyName");

检测是否为实例原型(布尔值)

o1.isPrototypeOf(o1);

检测属性是否可遍历

o1.propertyIsEnumerable("newPropertyName");

返回对象字符串表示

o1.toString();

返回对象原始值

o1.valueOf();

常用Array属性和方法

创建数组

var arr = [1,2,3,4,5];

构造函数长度

Array.length;

数组对象附加属性

Array.prototype;

检测是否为Array

Array.isArray();

数组实例的属性和方法

构造函数

arr.constructor;

返回长度

arr.length;

Mutator方法

以下方法改变原数组

增加或删除一个数组元素

arr.pop();
arr.push("end");
arr.shift();
arr.unshift("start");

添加或删除任意一个元素

arr.splice(1, 3); //从第二个开始,删除三个元素
arr.splice(1, 0, "newing","anotherNewing"); //从第二个开始,删除零个,添加两个新元素

颠倒数组元素

arr.reverse();

排列数组元素

arr.sort();

Accessor方法

以下方法不改变原数组

组合成新数组(Array)

var newArr = arr.concat("newArrayItem");

抽取元素组成新数组(Array)

var newArr = arr.slice(1, 3); //抽取从第二个元素开始到第四个元素(不包括第四个)结束成新数组

连接数组并以某种符号分割组合成字符串(String)

var string = arr.join("-");

连接数组并组合成字符串(String)

var string = arr.toString();

查询匹配元素返回索引值(number)

var index = arr.indexOf("end");

从后往前查询匹配元素返回索引值(number)

var index = arr.indexOf("end");

Accessor方法

以下方法不改变原数组

每个元素执行一次回调函数

arr.forEach(function (currentValue, index, array) {
    //body...
});

所有元素是否都通过函数测试(Boolean)

var result = arr.every(function (currentValue, index, array) {
    return typeof currentValue === "string";
});

是否至少一个元素通过函数测试(Boolean)

var result = arr.some(function (currentValue, index, array) {
    return currentValue.length === 3;
});

返回包括函数测试为true的元素新数组(array)

var newArray = arr.filter(function (currentValue, index, array) {
    return currentValue.length === 3;
});

返回回调函数返回值组成的新数组(array)

var newArray = arr.map(function (currentValue, index, array) {
    return currentValue + "[string...]";
});

reduce

var result = arr.reduce(function (previousValue, currentValue, index, array) {
    return previousValue + " " + currentValue;
}, "beginDoingThis"); //第二参数为初始值

reduceRight

var result = arr.reduceRight(function (previousValue, currentValue, index, array) {
    return previousValue + " " + currentValue;
}, "beginDoingThis"); //第二参数为初始值

常用Function的属性和方法

获取参数(like array)

function add(x, y) {
    return arguments;
}

获取函数期望接受参数个数(number)

add.length;

获取函数名(string)

add.name;

call方法

add.call(null, 1, 2, 3);

apply方法

add.apply(null, [1, 2, 3]);

bind方法

var anotherAdd = add.bind(null, 1, 2);

返回函数源码

add.toString();

常用String属性和方法

创建字符串

var s1 = "string...";
var s2 = String("hello there good morning...");

添加附加属性和方法

String.prototype

Unicode转为string(string)

var str = String.fromCharCode(65, 66, 67);

索引上string转为Unicode见实例中的方法(number)

var uniq = String.prototype.charCodeAt.call(s1, 0);

String实例的属性和方法

构造函数

s1.constructor;

字符串长度(number)

s1.length;

删除两端的空白字符

s1.trim();

string和unicode转化和索引

索引取值(string)

s1.charAt("0");

string索引上值转为unicode(unmber)

s1.charCodeAt(0);

查找字符在字符串中的索引(number)

s1.indexOf("searchString", 0); //第二个参数为开始的位置

从后往前查找字符在字符串中的索引(number)

s1.lastIndexOf("searchString", 0); //第二个参数为开始的位置

创建子字符串或数组的方法

提取字符串返回新字符串(string)

var str = s1.substring(-3,s1.length); //接收正整数(负数转化为0)

提取字符串返回新字符串(string)

var str = s1.substr(3,2); //可接收负数(从右往左),第二个参数是期望字符串长度

提取字符串返回新字符串(string)

var str = s1.slice(-3, 10); //可接收负数(length-数值)

切割字符串返回数组(array)

var arr = s2.split(" ", 2); //以空格为分隔符最多切割两次

正则相关的方法

正则提取匹配项返回数组(array or null)

var arr = s1.match(/str/g);

正则替换匹配项返回新字符串(string)

var newstr = s1.replace(//.{3}/, "!!!");

正则返回首次匹配项的索引(number)

var index = s1.search(/str/g);

常用RegExp属性和方法

创建RegExp

var r1 = new RegExp(/hello/ig);
var r2 = //w{10}/;

为正则添加对象

RegExp.prototype

length(number===2)

RegExp.length

RegExp实例的属性和方法

构造函数

r1.constructor;

是否开启global、ignoreCase和multiline(boolean)

r1.global
r1.ignoreCase
r1.multiline

匹配的最后位置(number)

r1.lastIndex;

设置最后匹配位置(与exec配合)

r1.lastIndex = 0;

执行匹配操作(array)

r1.exec("hello there, hello world");

测试是否匹配(boolean)

r1.test("hello there");

本文转载自:http://hao.jser.com/archive/10161/

共有 人打赏支持
ricardohn
粉丝 1
博文 76
码字总数 30236
作品 0
成都
从零开始学 Web 之 jQuery(一)jQuery的概念,页面加载事件

大家好,这里是「 从零开始学 Web 系列教程 」,并在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公众号:Web前端之巅 博客园:http://www.cnblogs.com/lvonve/ CSDN...

fengdaoting
07/04
0
0
JavaScript面向对象学习——3

对象基础介绍: 1、对象是JavaScript的基本数据类型。在java中Object是所有对象的基类,在JavaScript中同样,Object是所有对象的基类,那么Object自身属性和方法在所有对象中都会体现,只是不...

learn_more
2014/12/14
0
0
2015年10个最佳Web开发JavaScript库

现在的互联网可谓是无所不有,有大量的JavaScript项目开发工具充斥于网络中。我们可以参考网上的指导来获取构建代码项目的各种必要信息。如果你是搞Web开发的,那么大多更喜欢支持前端开发的...

IanSun
2015/03/14
0
0
JavaScript 参考手册

JavaScript 参考手册 http://www.w3school.com.cn/jsref/index.asp 本部分提供完整的 JavaScript 参考手册: JavaScript 本地对象和内置对象 Browser 对象(BOM) HTML DOM 对象 JavaScript...

chenhao_asd
05/25
0
0
40 个轻量级 JavaScript 库

流行的 JavaScript 库不胜枚举,jQuery, MooTools, Prototype, Dojo, YUI。这些 JavaScript 库功能丰富,加上它们的插件,几乎能胜任任何工作,然而这是有代价的,这些库往往导致你的网页尺寸...

晨曦之光
2012/03/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
13
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部