Javascript 中 str、 arr、date、obj 等常见的原生方法总结

本文也说主要阐释了 Javascript 中的基础类型和 引用类型的自带方法,那么熟悉的同学又可以绕道了



总是绕道,真是羞耻悳boy

当然 本文阐述的主要类容 from MDN ( zh-cn )

Object(Javascript 自带属性和方法)

Object 自带属性
Object 自带一个 prototype 属性, 即为 Object.prototype, Object.prototype 本身也是一个对象, 也会有一些属性和方法。
  1. Object.prototype.writable 默认为 false
  2. Object.prototype.enumerable 默认为 false
  3. Object.prototype.configurable 默认为 fasle
  4. Object.prototype.constructor 指向 创建这个 对象的 构造函数
Object 的 prototype 中常用的方法
Object 自带一个 prototype 属性, 即为 Object.prototype, Object.prototype 本身也是一个对象, 也会有一些属性和方法。
  1. Object.prototype.hasOwnProperty() // 用于判断某对象是否包含某属性,且这歌属性 不是原型链上继承出来的。
  2. Object.prototype.isProperty() // 用于判断某对象,是否承载 本对象的 原型链中。
  3. Object.prototype.propertyIsEnumerable():判断指定属性是否可枚举。
  4. Object.prototype.toString():返回对象的字符串表示。
  5. Object.prototype.watch():给对象的某个属性增加监听
  6. Object.prototype.unwatch():移除对象某个属性的监听
  7. Object.prototype.valueOf():返回指定对象的原始值
Object 中自带 方法
  1. Object.assign(target, …sources):把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。
  2. Object.create(proto,[propertiesobject]):创建一个拥有指定原型和若干个指定属性的对象。
  3. Object.defineProperties(obj, props):在一个对象上添加或修改一个或者多个自有属性,并返回该对象。
  4. Object.defineProperty(obj, prop, descriptor):直接在一个对象上定义一个新属性,或者修改一个已经存在的属性, 并返回这个对象。obj:需要定义属性的对象。prop:需定义或修改的属性的名字。descriptor:将被定义或修改的属性的描述符。
  5. Object.entries(obj):返回一个包含由给定对象所有可枚举属性的属性名和属性值组成的 [属性名,属性值] 键值对的数组,数组中键值对的排列顺序和使用for…in循环遍历该对象时返回的顺序一致。
  6. Object.freeze(obj):冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。
  7. Object.getOwnPropertyDescriptor(obj, prop):返回指定对象上一个自有属性对应的属性描述符。
  8. Object.getOwnPropertyNames(obj):返回一个由指定对象的所有自身属性的属性名(包括不可枚举属性)组成的数组。
  9. Object.getPrototypeOf(object):返回该对象的原型
  10. Object.is(value1, value2):判断两个值是否是同一个值
  11. Object.isExtensible(obj):判断一个对象是否是可扩展的(是否可以在它上面添加新的属性)
  12. Object.isFrozen(obj):判断一个对象是否被冻结(frozen)
  13. Object.isSealed(obj):判断一个对象是否是密封的(sealed)。密封对象是指那些不可 扩展 的,且所有自身属性都不可配置的(non-configurable)且属性不可删除的对象(其可以是可写的)。
  14. Object.keys(obj):返回一个由给定对象的所有可枚举自身属性的属性名组成的数组,数组中属性名的排列顺序和使用for-in循环遍历该对象时返回的顺序一致
  15. Object.preventExtensions(obj):让一个对象变的不可扩展,也就是永远不能再添加新的属性。
  16. Object.setPrototypeOf(obj, prototype):将一个指定的对象的原型设置为另一个对象或者null
  17. Object.values(obj):返回一个包含指定对象所有的可枚举属性值的数组,数组中的值顺序和使用for…in循环遍历的顺序一样。
以上介绍的 object 的相关内容 只是 一些概念上的东西,下面我们将一一对其进行 demo 的验证。
Object 自带属性 的 验证
另外 如果对于 Object.prototype 不太理解的 同学,可以查看本博客的上一篇文章, 其中详细的介绍了  prototype  和 __proto__  以及 object 的 constructor 属性对象的 详细解释。

传送门

1.Object.prototype.writable

JS 中 原生方法 (四) --- Object的更多相关文章

  1. JS 中 原生方法 (三) --- Date 日期

    本文也说主要阐释了 Javascript 中的基础类型和 引用类型的自带方法,那么熟悉的同学又可以绕道了 总是绕道,真是羞耻悳boy 当然 本文阐述的主要类容 from MDN ( zh-cn ) D ...

  2. JS 中 原生方法 (一) --- 字符串

    目录 Javascript 中 str. arr.date.obj 等常见的原生方法总结 Javascript 中 str. arr.date.obj 等常见的原生方法总结 本文也说主要阐释了 Jav ...

  3. JS 中 原生方法 (二) --- 数组 (修---添加ES6新增)

    const arr = [1, 2, 3, 5, 'a', 'b'] /** * * length * 这个只能被 称之为 数组的原生属性, 返回 一个 number * arr.length */ ...

  4. 原生JS中apply()方法的一个值得注意的用法

    今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...

  5. js中this的四种使用方法

    0x00:js中this的四种调用模式 1,方法调用模式 2,函数调用模式 3,构造器调用模式 4,apply.call.bind调用模式 0x01:第一种:方法调用模式 (也就是用.调用的)this ...

  6. 【温故知新】——原生js中常用的四种循环方式

    一.引言 本文主要是利用一个例子,讲一下原生js中常用的四种循环方式的使用与区别: 实现效果: 在网页中弹出框输入0   网页输出“欢迎下次光临” 在网页中弹出框输入1   网页输出“查询中……” 在 ...

  7. 【转载】JS中bind方法与函数柯里化

    原生bind方法 不同于jQuery中的bind方法只是简单的绑定事件函数,原生js中bind()方法略复杂,该方法上在ES5中被引入,大概就是IE9+等现代浏览器都支持了(有关ES5各项特性的支持情 ...

  8. js中apply方法的使用

    js中apply方法的使用   1.对象的继承,一般的做法是复制:Object.extend prototype.js的实现方式是: Object.extend = function(destinat ...

  9. JS高级面试题思路(装箱和拆箱、栈和堆、js中sort()方法、.js中Date对象中的getMounth() 需要注意的、开发中编码和解码使用场景有哪些)

    1.装箱和拆箱: 装箱:把基本数据类型转化为对应的引用数据类型的操作: var num = 123 // num var objNum = new Num(123) // object console ...

随机推荐

  1. java位移运算符3 转

    https://www.cnblogs.com/winsker/p/6728672.html 移位运算符操作的对象就是二进制的位,可以单独用移位运算符来处理int型整数. 理解java移位运算符 运算 ...

  2. Ubuntu zsh shell 一站式解决方案

    #!/bin/bash sudo apt-get install zsh python -y sudo apt-get install python-pip -y sh -c "$(curl ...

  3. vue定义全局组件

    <!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>& ...

  4. 刚学的vue.js的单一事件管理组件通信

    第一次在博客园写的技术分享,写的不好的话各位大神多体谅,好啦进入主题 说说思路 首先 第一步,准备一个空的示例对象 var Event=new Vue(); 第二步,准备发送的数据 Event.$em ...

  5. JavaScript中实现小数点后保留2位

    在项目中有时候会遇到要求输入的数字是整数或者小数点后绑定2位小数,因此可以用.toFixed(2)方法 下面是关于toFixed()方法的demo: <input type="numb ...

  6. 180815 Python自学成才001

    1.为什么学习Python? Python:脚本语言,易入门,可移植. Python适用范围:web开发.自动化测试工具编写. 适用岗位:运维开发(运维).自动化测试(软件测试).Python开发(软 ...

  7. 在Centos中安装mysql

    下载mysql 这里是通过安装Yum源rpm包的方式安装,所以第一步是先下载rpm包 1.打开Mysql官网 https://www.mysql.com/, 点击如图选中的按钮 点击如图框选的按钮 把 ...

  8. 微信小程序开发---视图层(View)

    WXML WXML能力: 数据绑定 列表渲染 条件渲染 模板 事件 数据绑定 数据绑定使用 Mustache 语法(双大括号)将变量包起来,可作用于内容,组件属性(需要在双引号之内),控制属性(需要在 ...

  9. Flutter 页面入栈和出栈

    Docs demo import 'package:flutter/material.dart'; void main() => runApp(new MyApp()); class MyApp ...

  10. 解决Django+Vue前后端分离的跨域问题及关闭csrf验证

      前后端分离难免要接触到跨域问题,跨域的相关知识请参:跨域问题,解决之道   在Django和Vue前后端分离的时候也会遇到跨域的问题,因为刚刚接触Django还不太了解,今天花了好长的时间,查阅了 ...