赞
踩
- 字体系列属性:font、font-family、font-weight、font-size、font-style;
- 文本系列属性: 2.1)内联元素:color、line-height、word-spacing、letter-spacing、 text-transform; 2.2)块级元素:text-indent、text-align;
- 元素可见性:visibility
- 表格布局属性:caption-side、border-collapse、border-spacing、empty-cells、 table-layout;
- 列表布局属性:list-style
- display:规定元素应该生成的框的类型;
- 文本属性:vertical-align、text-decoration;
- 盒子模型的属性:width、height、margin 、border、padding;
- 背景属性:background、background-color、background-image;
- 定位属性:float、clear、position、top、right、bottom、left、min-width、 min-height、max-width、max-height、overflow、clip;
数组是属于Object类型的,也就是引用类型,所以不能使用 typeof 来判断其具体类型。下面这些方法是判断数组的几种方法:
1、instanceof运算符
主要是判断某个实例(arr)是否属于某个对象。
let arr = [1,2,3];
console.log(arr instanceof Array); //true
2、constructor
判断实例(arr)的构造函数是否等于某个对象。
let arr = [1,2,3];
console.log(arr.constructor == Array); //true
3、isArray
ES5新增数组方法,判断数组是不是数组。
let arr = [1,2,3];
console.log(Array.isArray(arr)); //true
4、Object.getPrototypeOf()
Object.getPrototypeOf()方法返回指定对象的原型,然后和Array的原型对比。
let arr = [1,2,3];
console.log(Object.getPrototypeOf(arr) == Array.prototype); //true
5、Array原型链上的isPrototypeOf
Array.prototype表示Array的构造函数的原型;
isPrototypeOf()方法可以判断一个对象是否存在于另一个对象的原型链上。
let arr = [1,2,3];
console.log(Array.prototype.isPrototypeOf(arr)); //true
6、Object.prototype.toString.call()
把对象转化成字符串和一个已知的对象进行对比。
let arr = [1,2,3];
console.log(Object.prototype.toString.cal(arr) == '[object Array]'); //true
JavaScript 的 this 原理 - 阮一峰的网络日志
20
21
JavaScript的事件循环机制是一种用于处理异步任务的系统,它确保代码能够顺序执行,同时处理异步操作如定时器和事件监听。事件循环机制主要由以下三个部分组成:
当代码遇到一个异步任务时,该任务的回调函数会被添加到任务队列中。当主线程中的代码执行完毕,事件循环线程会从任务队列中取出一个任务并添加到调用栈中执行。这个过程会一直重复,直到任务队列中没有任何任务为止。需要注意的是,任务队列中的任务是按照先进先出的原则执行的。
在浏览器环境中,主线程运行在浏览器渲染进程中,而渲染进程中还有一个I/O线程和网络进程,它们会产生新的任务。这些任务会被I/O线程放入消息队列中,由渲染进程维护。主线程的事件循环线程会不断地从消息队列中取出新的任务去执行,以处理由I/O线程和其他进程产生的异步任务。
总结来说,JavaScript的事件循环机制通过一个循环系统来处理主线程内部产生的任务以及由其他进程产生的任务,确保代码能够顺序执行并处理异步操作。
22
23
24
25
26
27
28
29
30
原生
DOM
的绑定:Vue在创建真实DOM时会调用createElm
,默认会调用invokeCreateHooks
。会遍历当前平台下相对的属性处理代码,其中就有updateDOMListeners
方法,内部会传入add()
方法组件绑定事件,原生事件,自定义事件;组件绑定之间是通过Vue中自定义的
$on
方法实现的。(可以理解为:组件的nativeOnOn
等价于 普通元素on 组件的on会单独处理)
Vue2: Object.defineProperty
重新定义 data
中所有的属性, Object.defineProperty
可以使数据的获取与设置增加一个拦截的功能,拦截属性的获取,进行依赖收集。拦截属性的更新操作,进行通知。
具体的过程:首先Vue使用 initData
初始化用户传入的参数,然后使用 new Observer
对数据进行观测,如果数据是一个对象类型就会调用 this.walk(value)
对对象进行处理,内部使用 defineeReactive
循环对象属性定义响应式变化,核心就是使用 Object.defineProperty
重新定义数据。
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。