一 、 熟悉js的同学都应该知道Object对象、在js中一切皆对象、一切的对象都继承自ObjectObject()本身就是一个函数。它既可以当做工具函数来使用,也可以当做构造函数。工具函数 在作为工具函数的时候它可以将任意值转化为对象。分为2种情况基本数据类型和复杂数据类型。 在基本数据类型中我们可以看出:字符串、数字、布尔值、都转化成了对应的包装类型、而null和undefined都是空对象
彭老湿近期月报里提到了valueOf方法,兴致来了翻了下ECMA5里关于valueOf方法的介绍,如下:15.2.4.4 Object.prototype.valueOf ( )When the valueOf method is called, the following steps are taken:1. Let O be the result of calling&n
MapMap对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。构造函数Map可以接受一个数组作为参数。Map和Object的区别一个Object 的键只能是字符串或者 Symbols,但一个Map 的键可以是任意值。Map中的键值是有序的(FIFO 原则),而添加到对象中的键则不是。Map的键值对个数可以从 size 属性获取,而 Object键值对个数只能手动计算。Obje
Set 对象Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。Set 中的特殊值Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:+0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;undefined 与 undefined 是恒等的,所以不重复;NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。Set声明const
转载 2024-05-29 19:56:17
84阅读
一、 数组扩展1. Array.from作用:将类数组对象转换为数组参数:类数组对象或可遍历对象(iterable)返回:数组Tips:参数一定要有length参数,否则会得到空数组let arrayLike = { '0': 'a', '1': 'b', '2': 'c', length: 3 }; // ES5转换 let arr1 = [].slice.call(arrayL
转载 2024-04-19 23:09:24
118阅读
我们经常需要做键值对存储,大多时候我们会选择对象字面量Object ({}) 来存储,往往会忽略ES6 新提供的数据结构:Map。从字面上来看,Map才是正确的选择。接下来我们一起来比较一下对象字面量 和 Map 的差别。基本使用添加键值对,访问键值操作。Object// initconst keyValue = {}// addkeyValue['firstname'] = 'tony'// g
原创 2021-05-18 13:29:05
692阅读
属性的简洁表示ES6允许直接写入变量和函数作为对象的属性和方法。ES6允许在对象中只写属性名,不写属性值。这时,属性值等于属性名所代表的变量。 属性名表达式JavaScript定义对象的属性有两种方式:直接用标识符作为属性名用表达式作为属性名,放在方括号内方法是name属性函数的name属性返回函数名,对象方法也是函数,因此也有name属性。 如果对象的方法使用了取值
最近需求改完了,测试也还没来得及测试,所以今天上午花了点时间去实现这个东西,所以自己来回答自己的问题算了,如果有碰到相似问题的朋友,说不定还能骗点赞。如果有任何考虑不周的地方,也希望各位大佬来指出PS(因为我的需求是需要拿到一个全新的对象,所以会用到深复制)1、首先实现一个深复制的函数(这个实现过程很简单,随便百度一下一大把,我也是边看边实现)function deepClone(obj){ /
目录数组1.map()2. forEach() 注意:map和forEach  有可能改变原数组3. filter()4.find()  5.findIndex()  6.some() 7.every()   8. reduce()对象1.Object.is()&nbs
#面向对象 class 类声明 constructor 构造函数 extends 继承 super 父类/超类 ##类 class Person{ constructor(name, age){ this.name = name; this.age = age; } showName(){ aler ...
转载 2021-08-16 21:35:00
165阅读
2评论
       JS中只有函数对象具备类的概念,因此要创建一个对象,必须使用函数对象。函数对象内部有[[Construct]]方法和[[Call]]方法,[[Construct]]用于构造对象,[[Call]]用于函数调用,只有使用new操作符时才触发[[Construct]]逻辑。    &nbsp
ES6新增的内容新增数据类型symbol类型-表示独一无二的值 (基本数据类型)symbol函数:参数1 用来描述symbollet s1 = symbol('a') let s2 = symbol('a') console.log(s1===s2)//false //作为对象的属性名去使用防止 新增属性名的时候老的属性被覆盖 let obj = {name:"Z",age:18}; let
我们如何遍历数组中的元素?20年前JavaScript刚萌生时,你可能这样实现数组遍历: 1 var arr=["one","two","three"]; 2 for(var i=0;i<arr.length;i++){ 3 document.write(arr[i]); 4 }  自ES5正式发布后,你可以使用内建的forEach方法来遍历数组:myArray.for
一:String1.新特性,模版字符串。解释: 在反引号(“`”,~号键)中,使用${}作为模版,完成拼接工作。举例:<script> var name ="张三"; var age =18; //使用拼接字符串方式 var str = "姓名:"+name+",年龄:"+age; //使用ES6方式 var str2 =`姓名:${name},年龄:${ag
转载 2024-03-31 22:07:12
38阅读
ES61.ES6 介绍 ECMAScript 6,简称ES6 ,目标是使JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言。ES6与javascript的关系:ECMAScript是一种语言标准,Javascript实现了这个标准。ES6 与 ECMAScript2015的关系 ECMAScript2015 是具体到2015年6月发布的那一版。ES6有两层含义特指EC
转载 2024-05-06 10:54:47
98阅读
ES6 简介ECMAScript 6 简称 ES6,是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。新特性let、const let 定义的变量不会被变量提升,const 定义的常量不能被修改,let 和 const 都是块级作用域ES6前,js 是没有块级作用域 {} 的概念
转载 2024-03-26 21:55:41
29阅读
带你一文读懂Javascript中ES6的Symbol前言基础类型SymbolSymbol.for 与 Symbol.keyForSymbol.iteratorSymbol.searchSymbol.splitSymbol.toPrimitive总结 前言Symbol这个特性对于很多同学来说,可能是在学习ES6特性的过程中,感到比较困惑的一个特性点。在大部分开发场景中,你可能根本用不到这个特性,
转载 2024-06-11 14:07:01
86阅读
类:描述一个抽象的事物,泛指某一大类;对象:描述一个具体的事物,特指某一个,通过实例化获取一个具体的对象面向对象的思维特点:将对象共用的的属性和方法抽取出来,封装成一个模板(类),然后对类进行实例化,获取累的对象对象:在生活总,万物皆对象对象是一个具体的事物;在JS中,对象是一组无序的相关属性和方法的集合,所有的事物都是对象对象由属性和方法构成。 3.1 属性:事物的特征 3.2 方法:事物
转载 2024-04-03 13:22:18
50阅读
网上的资料很多,关于闭包,原型链,面向对象之内的。本人也有一点自己的总结。 关于this:this 的值取决于 function 被调用的方式,一共有四种,如果一个 function 是一个对象的属性,该 funtion 被调用的时候,this 的值是这个对象。如果 function 调用的表达式包含句点(.)或是 [],this 的值是句点(.)或是 [] 之前的对象。如myObj.f
JS数组对象Array方法1、concat() 连接两个或更多的数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。var arr = [1, 2, 3];   var arr1 = [11, 22, 33];   document.write(arr.concat(4, 5, arr1));   输出结果: 1,2,3,4,5,11,22,332、join() 把数组
  • 1
  • 2
  • 3
  • 4
  • 5