文档章节

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

ricardohn
 ricardohn
发布于 2016/12/01 14:01
字数 1317
阅读 5
收藏 1
点赞 0
评论 0

常用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");

© 著作权归作者所有

共有 人打赏支持
ricardohn
粉丝 1
博文 76
码字总数 30236
作品 0
成都
JavaScript 参考手册

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

chenhao_asd ⋅ 05/25 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 昨天 ⋅ 0

由js数组类型判断触发的浪漫思绪

一、前言 众所周知,js是门“动态”、“弱类型”编程语言,这意味着在js中可以很任性的定义变量,任性的同时也意味着需常在开发中对变量做类型判断,曾几何时,对数组变量的类型的判断是件很...

hanmin ⋅ 06/08 ⋅ 0

优化Visual Studio Code的自动补全

Visual Studio Code (简称VS Code)是个很棒的代码编辑器,内置多种语言的自动补全功能,写JavaScript也不例外,VS Code提供的自动补全还是很赞的。 不过自动补全功能在有些情况下会失效,比...

切糕糕 ⋅ 06/11 ⋅ 0

PHP学习路线图 最全PHP自学指南

对于广大零基础的PHP自学者,往往不知道如何系统的学习PHP,导致平白浪费了很多时间。本文将为大家带来最详细的php学习路线图,同时还会附上相应的权威教程,让广大PHP自学者少走许多弯路。 ...

W3Cschool小编 ⋅ 04/24 ⋅ 0

jQuery学习笔记--选择器和事件

以下内容参考 W3school 简书 你要是问我什么是jQuery 那可以这么两句话概括: jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 要学jQuery最好有点javaScript的基础 ...

codingcoge ⋅ 05/17 ⋅ 0

前端基础之JavaScript

一、JavaScript的历史 略 二、ECMAScript 注:ES6就是指ECMAScript 6。 尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一...

西鼠 ⋅ 05/09 ⋅ 0

React Native通信原理源码分析一

小伙伴们都知道在Android开发中实现Java和JS的通信可以通过WebView来实现,包括注册JSBridge或者在接口中拦截都可以。然而React Native中并没有用WebView控件的方式,而是基于WebKit内核的方...

juexingzhe ⋅ 04/08 ⋅ 0

JavaScript学习记录day9-标准对象

JavaScript学习记录day9-标准对象 [TOC] 在JavaScript的世界里,一切都是对象。 但是某些对象还是和其他对象不太一样。为了区分对象的类型,我们用操作符获取对象的类型,它总是返回一个字符...

ygqygq2 ⋅ 06/11 ⋅ 0

Node.js历险记之剑未配好,已出江湖

打开微信扫一扫,关注微信公众号【数据与算法联盟】 转载请注明出处: http://blog.csdn.net/gamergyt/ 博主微博: http://weibo.com/234654758 Github: https://github.com/thinkgamer ht...

thinkgamer.cn ⋅ 2017/03/05 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

懒惰根本就不存在

简评:芝加哥大学心理学教授,懒惰根本就不存在。(本文表面讲行为心理学实则讲教育) 金句:以好奇而不是判断来回应一个人的无效行为,是非常有帮助的。 本文「我」代表原作者 E Price。 自...

极光推送 ⋅ 28分钟前 ⋅ 0

Excel提取单元格中最后一个“.”后面的数据

java.lang.String ----- String =TRIM((MID(SUBSTITUTE(B2,".",REPT(" ",99)),(LEN(B2)-LEN(SUBSTITUTE(B2,".","")))*99,99)))...

klog ⋅ 30分钟前 ⋅ 0

mac远程桌面

下载安装remote-desktop-mac Mac beta 客户端 mac通过远程桌面访问windows服务器。

亚林瓜子 ⋅ 34分钟前 ⋅ 0

firrtl

动手---sbt(2)之后,再回头看 chisel第一个实验,根据 https://github.com/freechipsproject/firrtl 发现firrtl没有执行sbt assembly命令,重新执行这个命令,结果成功。如下图: joe@joe-As...

whoisliang ⋅ 38分钟前 ⋅ 0

NIO

一、通道(Channel):用于源节点与目标节点的连接。在 Java NIO 中负责缓冲区中数据的传输。Channel 本身不存储数据,因此需要配合缓冲区进行传输。 二、通道的主要实现类 java.nio.channel...

stars永恒 ⋅ 38分钟前 ⋅ 0

Android悬浮窗的实现

0. 前言   现在很多应用都使用到悬浮窗,例如微信在视频的时候,点击Home键,视频小窗口仍然会在屏幕上显示。这个功能在很多情况下都非常有用。那么今天我们就来实现一下Android悬浮窗,以...

猴亮屏 ⋅ 39分钟前 ⋅ 0

日志采集中的关键技术分析

概述 日志从最初面向人类演变到现在的面向机器发生了巨大的变化。最初的日志主要的消费者是软件工程师,他们通过读取日志来排查问题,如今,大量机器日夜处理日志数据以生成可读性的报告以此...

tqyin ⋅ 40分钟前 ⋅ 0

使用Navicat将数据导出为text文本 然后再导入

将数据导出为text文本效率很高 1. 准备工作 1.1 准备表结构 1.2 目标库 执行生成表结构sql 2.将表数据导出为text文本 生成的text文本 3. 目标库 导入text 4.效果...

Lucky_Me ⋅ 46分钟前 ⋅ 0

IntelliJ IDEA 乱码解决方案 (项目代码、控制台等)

文章介绍了idea下,项目乱码、控制台乱码及运行tomcat控制台乱码的解决方案,文章链接:https://www.cnblogs.com/vhua/p/idea_1.html

Funcy1122 ⋅ 49分钟前 ⋅ 0

IDEA使用sonarLint

一、IDEA如何安装SonarLint插件 1.打开 Idea 2.点击【File】 3.点击【Settings】 4.点击【Plugins】 5.在搜索栏中输入“sonarlint”关键字 6.点击【Install】进行安装 7.重启Idea 二、IDEA如...

开源中国成都区源花 ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部