文档章节

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

ricardohn
 ricardohn
发布于 2016/12/01 14:01
字数 1317
阅读 6
收藏 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
成都
私信 提问
JavaScript面向对象学习——3

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

learn_more
2014/12/14
0
0
关于javascript的原型和原型链,看我就够了(一)

关于js的原型和原型链,有人觉得这是很头疼的一块知识点,其实不然,它很基础,不信,往下看 要了解原型和原型链,我们得先从对象说起 创建对象 创建对象的三种方式: 对象直接量 通过对象直...

陌上寒
11/03
0
0
【译】为什么ReasonReact是编写React的最佳方式

原文地址:medium.freecodecamp.org/psst-heres-… 你是否使用 React 来构建用户界面?好吧,我也是。接下来你会了解为什么要使用 ReasonML 来写 React 应用。 React 是构建用户界面的一种很...

吃吃吃吃不胖
10/18
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

没有更多内容

加载失败,请刷新页面

加载更多

使用linux将64G的SDCARD格式化为FAT32

一、命令如下: sudo fdisk -lsudo mkfs.vfat /dev/sda -Isudo fdisk /dev/sda Welcome to fdisk (util-linux 2.29.2). Changes will remain in memory only, until you decide to wri......

mbzhong
37分钟前
4
0
深入理解Plasma(四):Plasma Cash

这一系列文章将围绕以太坊的二层扩容框架,介绍其基本运行原理,具体操作细节,安全性讨论以及未来研究方向等。本篇文章主要介绍在 Plasma 框架下的项目 Plasma Cash。 深入理解Plasma(1):...

HiBlock
昨天
1
0
命令参数的三大风格:Posix、BSD、GNU

今天读到命令行中参数的风格有三大类,即Unix/Posix、BSD、GNU。分别有以下特征: Unix/Posix风格,即命令后的参数,可以分组,便必须以连字符开头,如ps -aux。 BSD风格,即命令后的参数,可...

大别阿郎
昨天
2
0
PHP生成图片验证码

PHP生成图片验证码 /** * PHP生成图片验证码 * Class VerifyImage */class VerifyImage{ // 生成随机字串 private $verifyCode; // 图片对象 private $image; /**...

DrChenXX
昨天
1
0
纹理与表面细节添加方法---OpenGL纹理函数

OpenGL线纹理函数 OpenGL表面纹理函数 OpenGL体纹理函数 OpenGL纹理图案的颜色选项 OpenGL纹理映射选项 OpenGL纹理环绕 复制帧缓存中的OpenGL纹理图案 OpenGL纹理坐标数组 OpenGL纹理图案命名...

中国龙-扬科
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部