JS prototype
在典型的面向对象的语言中,如java,都存在类(class)的概念,类就是对象的模板,对象就是类的实例。但是在Javascript语言体系中,是不存在类(Class)的概念的,javascript中不是基于‘类的’,而是通过构造函数(constructor)和原型链(prototype...
JS 数据类型你应该知道的可不止这些
基本数据类型string, number, boolean, null, undefined 基本数据类型的变量是保存在栈内存中的,基本数据类型的值直接在栈内存中存储,值与值之间是独立存在的,修改一个变量不会影响其他的变量 当比较两个基本数据类型的值时,本质上是比较值 引用类型object 对象是保存在堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而变量保存的是对象的内存地址(对象的引用),如果两个变量保存的是同一个对象引用,当修改其中一个变量修改属性时,另一个也会受到影响 当比较两个引用数据类型时,本质上是比较的对象的内存地址,如果两个对象的属性是一模一样的,但是地址不同,也会返回false。 数据结构中的栈和堆 栈 :这是一种连续存储的数据结构,具有先进后出的性质。通常具有的操作有出栈、入栈(压栈)和取栈顶元素。想要读取栈中的某个元素,就必须将其之前所有的元素出栈才能完成。 ...
JS dom元素位置相关的内容
offsetWidth: 返回元素的宽度(包括元素宽度 + 内边距 + 边框,不包括外边距) offsetHeight: 返回元素的高度(包括元素高度 + 内边距 + 边框,不包括外边距) clientWidth: 返回元素的宽度(包括元素宽度 + 内边距,不包括边框和外边距) clientHeight: 返回元素的高度(包括元素高度 + 内边距,不包括边框和外边距) style.width: 返回元素的宽度(包括元素宽度,不包括内边距、边框和外边距) style.height: 返回元素的高度(包括元素高度,不包括内边距、边框和外边距) scrollWidth: 返回元素的宽度(包括元素宽度 + 内边距 + 溢出尺寸,不包括边框和外边距),无溢出的情况,与clientWidth相同 scrollHeigh: 返回元素的高度(包括元素高度 + 内边距 + 溢出尺寸,不包括边框和外边距),无溢出的情况,与clientHeight相同 style.width...
eslint 常用配置中文注释
注意这里的数字:0表示不不处理,1表示警告,2表示错误并退出这里的 0,1,2 也可以用 off, warn, error, 表示: “off”或者0 //关闭规则关闭“warn”或者1 //在打开的规则作为警告(不影响退出代码)“error”或者2 ...
学习笔记3 常见运算题
一些讲运算结果类型的面试题【不定时更新】 1234567891011var name = "Hello";var object = { name: "world", getNameFunc: function() { return function() { return this.name; }; }};console.log(object.getNameFunc()()); // Hello object.getNameFunc() 返回的就是一个 function,function () { return this.name } 123456789101112var name = "Hello";var object = { name: "world", getNameFunc: function() { var that = this; ...
react render 原理
JSX 代码经过 babel 编译之后变成 React.createElement 的表达式,这个表达式在 render 函数被调用的时候执行生成一个 element。 在首次渲染的时候,先去按照规则初始化 element,接着 ReactComponentComponentWrapper 通过递归,最终调用 ReactDOMComponent 的 mountComponent 方法来帮助生成真实 DOM 节点。 地址一: React 从渲染原理到性能优化(一) 地址二: React 从渲染原理到性能优化(二)– 更新渲染
学习笔记2 JS基础知识
课程地址: JavaScript 基础知识 基础数据类型js 数据类型: ‘usbno’ undefined: 未定义stringbooleannumberobjectnull JS 基本数据类型: undefined, string, number, boolean, null function 不是数据类型object 是复杂数据类型 NaNnot a number isNaN 跟谁都不相等, 包括它本身typeof NaN // “number” 检测一个变量是不是 NaN ES6: isNaN()ES5: a != a 为 false 不是 NaN, 为 true 则是 NaN js 作用域链当前函数作用域找不到的时候就去它的父级找 123456789var a = 666;function show() { var a = 233; show2();}function show2() { console.log(a);}show(); // 666 这是因为 show2...
学习笔记1 ES6
课程地址: 【JS 老毕】Javascript ES6 基础+核心课程 9. 字符串方法和 for ofincludes 是否包含,返回 true/false 123const string = "abc";const substring = "ab";console.log(string.includes(substring)); // true startsWith 是否是以某个字符串开始, 返回 true/falseendsWith 是否是以某个字符串结尾, 返回 true/false 123const string = "abc";const substring = "ab";console.log(string.startsWith(substring)); // true for of 123456789101112131415161718192021222324252627const tests = ["a",...
JS __proto__和prototype的区别和关系
首先,看别人怎么说的:1.在JS里,万物皆对象。方法(Function)是对象,方法的原型(Function.prototype)也是对象。它们都会具有对象共有的特点:对象具有属性 __proto__,可称为隐式原型,一个对象的隐式原型指向构造该对象的构造函数的原型,这也保证了实例能够访问在构造函数原型中定义的属性和方法。 2.方法(Function)方法这个特殊的对象,除了和其他对象一样有上述 __proto__...
Lightroom 学习笔记
课程资源: 秋凉 LightRoom4 教学视频课程来源: 华摄影师 2020 年元宵节送 快捷键 commnd + shift + i: 导入 视图: E:放大G:网格F:全屏L:高亮C:比较Com + L: 打开/关闭过滤器过滤器栏 面板 F5:上面板F6:下面板F7:左面板F8:右面板Tab: 两侧shit + Tab: 全部面板Command + 0 ~ 8 打开/关闭面板 修图 \: 调整前后的照片Y: 比较窗口Shift + Y:Q:污点去除工具R::裁剪/拉直V:黑白切换M:渐变滤镜K:调整画笔Command + N 新建快照Command + Z 复位Command + Shift + Z 重做 小技巧美白牙齿: 用画笔工具提高亮度...