首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

读书笔记-你不知道JavaScript(上)

函数是否在某个上下文对象中调用(隐式绑定)?如果是的话,this 绑定是那个上下文对象。 如果都不是的话,使用默认绑定。在严格模式下,绑定 undefined,否则绑定全局对象。...作者认为“JavaScript中万物都是对象观点是不对。因为对象只是 6 个基础类型( string、number、boolean、null、undefined、object )之一。...对象有包括 function 在内对象不同类型具有不同行为,比如内部标签 [object Array] 表示这是对象类型数组。...Object.create(..)会创建一个新对象 (bar) 并把它关联到我们指定对象 (foo),这样我们就可以充分发挥 [[Prototype]] 机制例(委托)并且避免不必要麻烦 (比如使用...可以通过 extends 很自然地扩展对象(子)类型。 但是 class 就是完美的吗?在传统面向类语言中,类定义之后就不会进行修改,所以类设计模式就不支持修改。

972100
您找到你想要的搜索结果了吗?
是的
没有找到

Python内置函数详解【翻译自pyth

若  它是一个遵循buffer接口对象对象只读buffer将被用来初始化字节数组 若 它是一个可迭代对象,它必须是一个范围在0 <= x < 256中整数可迭代对象,被用做数组初始内容。...默认dir()机制对于不同类型对象具有不同行为,因为它尝试生成最相关,而不是完整信息: 如果对象是模块对象,列表包含模块属性名。...没有第二个参数,object必须是一个支持迭代协议(__iter__()方法)容器对象,或者它必须支持序列协议(从 0开始整数参数__getitem__() 方法)。...如果提供了一个位置参数,它应该是一个可迭代对象。返回可迭代对象中最小元素。如果有2个或更多位置参数,返回最小位置参数。 有两个可选关键字参数。...第二种使用情况是在动态执行环境中支持协同多继承。这种使用情况是Python独有的,在静态编译语言或支持单继承语言中找不到。这使得可以实现“菱形图”,其中多个基类实现相同方法。

1.5K20

python 基础内置函数表及简单介绍

·如果它是一个 iterable,必须是 0 <= x <256 范围内迭代对象,它们将被用作数组初始内容。 **没有参数,就会创建一个大小 0 数组。...默认 dir() 机制对不同类型对象不同表现,因为它试图产生最相关信息,而不是完整信息: ·如果对象是模块对象,则列表包含模块属性名称。...iter(object[,sentinel]) 返回一个迭代对象。根据第二个参数是否存在,第一个参数解释有所不同。...如果没有第二个参数,object 必须是支持迭代协议(__iter__() 方法)集合对象,或者它必须支持序列协议(整数参数从 0 开始 __getitem__() 方法)。...第二种使用情况是在动态执行环境中支持协同多继承。这种使用情况是 Python 独有的,在静态编译语言或支持单继承语言中找不到。这使得可以实现 “菱形图”,其中多个基类实现相同方法。

1.3K20

微信小程序之事件系统

事件可以将用户行为反馈逻辑层进行处理。 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应事件处理函数。 事件对象可以携带额外信息, id, dataset, touches。...BaseEvent 基础事件对象属性列表: 属性 类型 说明 基础库版本 type String 事件类型 timeStamp Integer 事件生成时时间戳 target Object 触发事件组件一些属性值集合...属性 类型 说明 detail Object 额外信息 TouchEvent 触摸事件对象属性列表(继承 BaseEvent): 属性 类型 说明 touches Array 触摸事件,当前停留在屏幕中触摸点信息数组...touches touches 是一个数组,每个元素一个 Touch 对象(canvas 触摸事件中携带 touches 是 CanvasTouch 数组)。 表示当前停留在屏幕上触摸点。...Touch 对象 属性 类型 说明 identifier Number 触摸点标识符 pageX, pageY Number 距离文档左上角距离,文档左上角原点 ,横向X轴,纵向Y轴 clientX

1.2K30

ionic3升级适配angular5

昨天angular5和ionic3同时发布更新了,为了用上angular5新特性,还是有必要踩下坑,当然踩坑白老鼠建议选用一个最近不用维护项目。...先看下ionic3更新版本,同一天发布了三个版本,后两个版本都是修复一两个小bug。 ? ionic3最新版本 ?...首次支持angular5ionic3版本 然后再看下angular5版本,同样发布了两个版本,一个是普通稳定版,一个是beta版,其中前者如图所示修复了几个bug,那若升级,当然选择普通稳定版比较好...angular5最新beta版 在ionic3官网建议是更新依赖angular5.0.0版本,而根据上述说明,优先选择做了做了bug修复angular5.0.1版。...: ---- 更改内容: I18n更改; 内置管道Date、Currency、Percent更改; 弃用内容: compiler: ngGetContentSelectors()在v4版本被移除,现在用

2.5K40

ES新特性

obj[Math.random()] = 123;//计算属性名 对象扩展方法 Object.assign 将多个源对象属性复制目标对象中 const source1 = { a: 123...(NaN,NaN));//true Proxy 监视某个对象属性读写,以前ES5使用Object.defineProperty 在vue3.0以前版本使用这样方法进行属性响应从而实现了数据绑定Object.defineProperty...需要针对每一个属性进行设置,ES6 提供Proxy监视对象读写过程 Proxy可以监视对象所有属性 要强大很多,Proxy 能够监视更多对象操作,Proxy 更好支持数组对象监视;Proxy...(Symbol.hasInstance) const obj2 = { //对象实现迭代器会经常用到 [Symbol.toStringTag]:"XObject", //[object...for..of循环,ES6这个新特性主要是方便统一所有的循环,只要循环对象实现了迭代器就可循环迭代 //Object 对象不能被for_of迭代 需要自定义迭代器 const obj = {foo:123

1K10

Python 内建函数大全

如果它是一个 iterable,必须是 0 <= x <256 范围内迭代对象,它们将被用作数组初始内容。 没有参数,就会创建一个大小 0 数组。...默认 dir() 机制对不同类型对象不同表现,因为它试图产生最相关信息,而不是完整信息: 如果对象是模块对象,则列表包含模块属性名称。...iterable 必须是一个序列,一个迭代器或其他支持迭代对象。...如果没有第二个参数,object 必须是支持迭代协议(__iter__() 方法)集合对象,或者它必须支持序列协议(整数参数从 0 开始 __getitem__() 方法)。...第二种使用情况是在动态执行环境中支持协同多继承。这种使用情况是 Python 独有的,在静态编译语言或支持单继承语言中找不到。这使得可以实现 “菱形图”,其中多个基类实现相同方法。

1.9K30

高级前端手写面试题汇总

=> 递归递归退出条件:被比较是两个值类型变量,直接用“===”判断被比较两个变量之一null,直接判断另一个元素是否也null提前结束递推:两个变量keys数量不同传入两个参数是同一个变量递推工作...:深度比较每一个keyfunction isEqual(obj1, obj2){ //其中一个类型或null if(!...数组去重实现基本原理如下:① 初始化一个空数组② 将需要去重处理数组第1项在初始化数组中查找,如果找不到(空数组中肯定找不到),就将该项添加到初始化数组中③ 将需要去重处理数组第2项在初始化数组中查找...,如果找不到,就将该项继续添加到初始化数组中④ ……⑤ 将需要去重处理数组第n项在初始化数组中查找,如果找不到,就将该项继续添加到初始化数组中⑥ 将这个初始化数组返回var newArr = arr.reduce...new func.bind(obj) // 当作为构造函数时,this 指向实例,此时 this instanceof fBound 结果 true,可以让实例获得来自绑定函数

76210

流畅python

OrderDict: 这个类型在添加键时候,会保存顺序,因此键迭代顺序总是一致 ChainMap: 该类型可以容纳数个不同映射对像,在进行键查找时,这些对象会被当做一个整体逐个查找,直到键被找到为止...后者 可以是由数个字符串组成迭代对象,或者是由空格分隔开字段名组成字符串。...数组支持所 有跟可变序列有关操作,包括 .pop、.insert 和 .extend。另外,数组还提供从文件 读取和存入文件更快方法, .frombytes 和 .tofile。...set 专为检查元素是否存在做过优化 memoryview 是一个内置类,它能让用户在不复制内容情况下操作同一个数组不同切 片。...→ (小数点) 可以重复上一次命令 NG → 第 N 行 (注意命令中G是大写,另我一般使用 : N 第N行, :137 第137行) gg → 第一行。

2.4K10

JS原生引用类型解析2-Array类型

(注2:更多内容请查看我目录。) 1. 简介 Array类型应该是除了Object类型外在JS中最常用类型了,JS数组与其他多数语言中数组有着相当大区别。...虽然JS数组和在其他语言中一样,是一个有序列表,但不同是其每一项可以保存不同类型数据,而且其数组大小是可以动态调整。 2....,长度0 4.2 Array原型对象方法 Array原型对象方法分为四类: 修改器方法 访问方法 迭代方法 泛型方法(已弃用) 4.2.1 修改器方法 修改器方法会改变调用它们对象自身值。...Array.prototype.slice() 方法返回一个从开始结束(不包括结束)选择数组一部分浅拷贝一个新数组对象。原始数组不会被修改。...需注意是此方法同时有跨浏览器问题. 但是 Github上有可用shim。 有时我们会希望在字符串或其他类数组对象上使用数组所提供方法(函数 arguments)。

1.5K20

JavaScript 编程精解 中文第三版 六、对象秘密

可以在声明大括号内写入任意数量方法。 一个名为constructor对象受到特别处理。 它提供了实际构造器,它将绑定名称"Rabbit"。 其他函数被打包该构造器原型中。...当一段代码为了与某些对象协作而编写,这些对象具有特定接口时(在本例中toString方法),任何类型支持此接口对象都可以插入代码中,并且它将正常工作。...提供给for/of循环对象预计迭代对象(iterable)。...构成对象其余细节,现在被封装在接口后面。 不止一种类型可以实现相同接口。 使用接口而编写代码,自动知道如何使用提供接口任意数量不同对象。 这被称为多态。...实现多个类,它们仅在一些细节上有所不同时,将新类编写现有类子类,继承其一部分行为会很有帮助。 6.14 习题 6.14.1 向量类型 编写一个构造器Vec,在二维空间中表示数组

1.7K60

每天10个前端小知识 【Day 2】

它本身是一个顶级对象,同时还是一个构造函数,可以通过它(:new Object())来创建一个对象。...,切遍历顺序是确定 Object 并没有实现迭代器,需要自行实现,不实现只能通过for-in循环去迭代,遍历顺序是不确定 使用场景 如果只需要简单存储key-value数据,并且key不需要存储复杂类型...如果该对象必须通过JSON转换,则只能用对象,目前暂不支持Map。...数组是引用类型,const声明引用类型变量,不可以变是变量引用始终指向某个对象,不能指向其他对象,但是所指向某个对象本身是可以变。 6. 如何区分数组对象?...写一个 repeat 方法,实现字符串复制拼接 方法一:之所以创建一个带 length 属性对象,是因为要调用数组原型方法,需要指定 call 第一个参数数组对象

8810

【愚公系列】2023年03月 其他-Web前端基础面试题(JS_33道)

WEB 服务器,限制最大长度不一样 要支持 IE,则最大长度 2083byte,若只支持 Chrome,则最大长度 8182byte 4、如何让事件先冒泡后捕获 在 DOM 标准事件模型中...隐式绑定:一般地,被直接对象所包含函数调用时,也称为方法调用,this 隐式绑定该直接对象。 隐式丢失:隐式丢失是指被隐式绑定函数丢失绑定对象,从而默认绑定 window。...); 第一个参数是事件类型( “click” 或 “mousedown”)....== ‘object’) return; // 根据 obj 类型判断是新建一个数组还是对象 var newObj = obj instanceof Array ?...===被称为严格等式运算符,当两个操作数具有相同值而没有任何类型转换时,该运算符返回true。 检查值相等,而=是一个更严格等式判定,如果两个变量值或类型不同,则返回false。

89510

【愚公系列】2023年03月 其他-Web前端基础面试题(JS_高级_47道)

Object类型是string和symbol; (3)键顺序:Map有序迭代时候以其插入顺序返回键值;Object无序; (4)size:Map长度可以通过size属性获取;Object...需要手动计算; (5)迭代:Map是可迭代Object需要通过获取键来迭代; (6)性能:Map在频繁增删键值对场景下表现更好;Object在频繁添加和删除键值对场景下未作出优化; 36、async...判断数组对象时值均为 ‘object’ (2)instanceof:可以判断一个实例是否属于某种类型,也可以判断一个实例是否是其父类型或者祖先类型实例 (3)constructor:除了undefined...(5)Array.isArray:判断是否数组 39、原生对象和宿主对象?...原型链:当在实例化对象中访问一个属性时,首先会在该对象内部(自身属性)寻找,找不到,则会向其__proto__指向原型中寻找,找不到,则继续向原型中__proto__指向上级原型中寻找,直至找到或

45420

面试前必备 JavaScript 基础知识梳理总结

数据类型 JavaScript 中有八种基本数据类型(译注:前七种基本数据类型,也称为原始类型,而 object 复杂数据类型)。...它们有着各自特别的特性,我们将在后面学习。有时候大家会说“Array 类型”或“Date 类型”,但其实它们并不是自身所属类型,而是属于一个对象类型即 “object”。...Iterable object(可迭代对象) 可以应用 for..of 对象被称为 可迭代。 技术上来说,可迭代对象必须实现 Symbol.iterator 方法。...与普通对象 Object 不同点: 任何键、对象都可以作为键。 有其他便捷方法, size 属性。 Set —— 是一组唯一值集合。...通常我们应用 bind 来绑定对象方法 this,这样我们就可以把它们传递其他地方使用。例如,传递给 setTimeout。

79320

Vue 2.X 文档阅读笔记一 (基础)

其中css属性名可以使用驼峰命名或短横线分隔(用单引号括起来)命名;通常更好写法是直接绑定一个样式对象上,,这让模板更清晰;...b.用v-for通过对象属性迭代 v-for指令遍历对象时,使用特殊语法是value in object,可以看到遍历出来结果是对象迭代属性值。...除了默认参数value外,v-for还支持第二个参数作为键名,第三个参数索引,(value, key, index) in object。...结合v-for迭代数组元素特性,可以看出官方推荐用于遍历数据结构是:由对象元素组成数组。...设置v-forkey时应使用字符串或数据类型值,而不要使用对象数组之类非原始类型值。

3.5K70
领券